2014-07-08 18 views
12

मैं टैग पर पैरामीटर के माध्यम से एक निर्देश में वापस कॉल भेजना चाहता हूं, और उसके बाद निर्देश के अंदर उचित होने पर उस विधि को कॉल करना चाहता हूं। उदाहरण के लिए, जब एक बटन क्लिक किया गया था तो मूल नियंत्रक पर एक विधि कॉल करें।कोणीय जेएस निर्देशक कॉलबैक

मैं इसके बारे में एक सरल plunker काम नहीं कर रहा

है

html फ़ाइल:

<body ng-controller="ParentController"> 
    <h1> Method Arguments </h1> 
    <h3> open console to view output</h3> 
    <hello-world onLoadCallback="myCallback(arg1)"></hello-world> 
</body> 

जावास्क्रिप्ट फ़ाइल:

var app = angular.module("app",[]); 

function ParentController($scope) { 
    $scope.myCallback = function(var1){ 
    console.log("myCallback", var1); 
    } 
} 
app.directive('helloWorld', function() { 
    return { 
     restrict: 'AE', 
     template: '<h3>Hello World!!</h3>', 
     scope:{ 
      onLoadCallback: '&' 
     }, 
     link: function(scope, element, attrs, dateTimeController) { 
      console.log('linked directive, not calling callback') 
      scope.onLoadCallback('wtf'); 

     } 
    }; 
}); 

उत्तर

33

ट्रिकी मुश्किल कोणीय, जब HTML में तर्क की घोषणा यह, मिलान करने के लिए ऊंट के बजाय, सांप केस का उपयोग करने की आवश्यकता है।

काम करता है:

<hello-world on-load-callback="myCallback(arg1)"></hello-world> 

काम नहीं करता:

<hello-world onLoadCallback="myCallback(arg1)"></hello-world> 
+24

मुझे लगता है कि एंगुलर डेवलपर नहीं है जो इस में कभी विफल नहीं हुआ .. – URL87

+1

एचटीएमएल मामलों से अवगत नहीं है, इसलिए यह नहीं पता कि यह ऑनलोडकॉलबैक है या यदि यह ऑनलोड लोड है। ब्राउज़र कुछ समय/तत्व संशोधन करते हैं, यही कारण है कि कोणीय और यहां तक ​​कि जेएस, उदाहरण के लिए elem.dataSet, ऊंट केस का अनुवाद '-' – deadManN

16

इसके अलावा कॉलबैक की जरूरत होने के लिए:

scope.onLoadCallback({arg1: 'wtf'}); 

नाम वाले पैरामीटर तो इस्तेमाल किया इसी मानकों करने के लिए बाध्य कर रहे हैं कॉलबैक विशेषता में (सभी को उपयोग करने की आवश्यकता नहीं है)।

+0

पर किया गया है यह उत्तर कम गुणवत्ता के रूप में चिह्नित किया गया है और समीक्षा के लिए तैयार है। हो सकता है कि मैं आपको यह बताकर जवाब में सुधार करने का अनुरोध करूँ कि कोड को आपके द्वारा प्रस्तावित किए गए कोड में क्यों बदला जाना चाहिए - शायद आप दस्तावेज़ीकरण के लिए एक लिंक प्रदान कर सकते हैं और आपको पैरामीटर – callmekatootie

+1

पैरामीटर का स्पष्ट रूप से उल्लेख करने की आवश्यकता के बारे में एक संक्षिप्त विवरण प्रदान कर सकते हैं @ callmekatootie दुर्भाग्यवश आधिकारिक दस्तावेज इस पर बहुत हल्का है (जैसा कि कोणीय के लिए सामान्य है)। मैंने वाक्यविन्यास की व्याख्या करने के लिए एक छोटी सी वाक्य जोड़ा। – user1338062

+0

यह पुष्टि कर सकता है कि यदि आप अपने कॉलबैक में एक से अधिक पैरामीटर पास करने का प्रयास कर रहे हैं तो यह पैरामीटर सिंटैक्स सही है। यदि आप इस वाक्यविन्यास का उपयोग नहीं करते हैं, तो कोणीय कॉलबैक पर दोनों पैरामीटर को मैप करने में विफल रहता है। – asulaiman

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