2015-12-28 8 views
8

मैं एक कस्टम तत्व नामित कस्टम तत्व और मैं टेम्पलेट एक के अंदर डाल दिया (नियंत्रक एक साथ)ऑरेलिया: कस्टम तत्व के बाहर फ़ंक्शन कैसे कॉल करें?

custom-element

export class CustomElem { 
    @bindable onCompleted; 
    ........ 
} 

और updateDescription() नियंत्रक ए में से एक समारोह है

export class A { 
    updateDescription(){ 
    .... 
    } 
} 

कस्टम-तत्व का उपयोग कर अद्यतन डिस्क्रिप्शन() को कैसे कॉल करें?

उत्तर

2
export class A { 
    updateDescription =() => { 
    }; 
} 

फिर

<custom-element on-completed.bind="updateDescription"></custom-element> 

अंदर CustomElem कॉल this.onCompleted()

+0

बस इस की कोशिश की, और दुर्भाग्य से, जबकि यह अच्छी तरह से काम करता है, निष्पादन संदर्भ, कस्टम नियंत्रण के साथ रहता है माता पिता वी एम में है कि संपत्तियों की कोई अर्थ सुलभ हैं यदि आप कस्टम नियंत्रण के अंदर कोड का विस्तार करना चाहते हैं, तो यह चीजों को करने का एक अच्छा तरीका है, लेकिन उपभोक्ता को उस कोड को परिभाषित करने की अनुमति दें जो नियंत्रण के आधार पर अपने स्वयं के वीएम के अंदर ऐसा करता है। – shawty

+0

@shawty अगर आपको अद्यतन के अंदर कुछ बाहरी संदर्भ की आवश्यकता है तो सदस्यता बंद करना हमेशा संभव है। कभी-कभी यह एक अच्छा समाधान हो सकता है – valichek

18

अपने कस्टम तत्व के लिए एक समारोह कॉल के लिए एक संदर्भ देने के लिए call बाध्यकारी आदेश का उपयोग करें:

<custom-element on-completed.call="updateDescription()"></custom-element> 

कॉल करने के लिए updateDescription मीटर तर्क के साथ ethod, आप कर सकते हैं निम्नलिखित:

export class CustomElem { 
    @bindable onCompleted; 

    ... 

    fooBarBaz() { 
    var args = { 
     something: 'A', 
     somethingElse: 'B', 
     anotherArg: 'C' 
    }; 
    this.onCompleted(args); 
    } 
} 
<custom-element on-completed.call="updateDescription(something, somethingElse, anotherArg)"></custom-element> 
+0

क्या तर्कों के साथ 'अपडेट डिस्क्रिप्शन' को कॉल करना संभव है और परिणाम 'CustomElem' में जांचें? – valichek

+2

हां- –

+0

को कैसे करें, इस बारे में जानकारी के साथ उत्तर अपडेट किया गया है, इसे आधिकारिक दस्तावेज़ीकरण का हिस्सा होना चाहिए। – nym

संबंधित मुद्दे