2013-03-25 11 views
20

पर एनजी-क्लिक विशेषता मुझे लगता है कि बॉक्स के निर्देश पर ज्ञात कोणीय विशेषताओं का उपयोग करना आसान होना चाहिए।एंजुलरजेस निर्देश

उदाहरण के लिए

अगर मेरे निर्देश का नाम myDirective है मैं इसे इस तरह से उपयोग करना चाहते हैं:

<div ng-controller="myController"> 
    <my-directive ng-click="doSomething()"><my-directive> 
</div> 
बजाय

नीचे दिए गए उदाहरण में के रूप में एक कस्टम क्लिक विशेषता (onClick) को परिभाषित करने की आवश्यकता होगी, के

<div ng-controller="myController"> 
    <my-directive on-click="doSomething()"><my-directive> 
</div> 

ऐसा लगता है कि एनजी-क्लिक काम कर सकता है, लेकिन फिर आपको निर्देश टैग पर एनजी-नियंत्रक निर्दिष्ट करने की आवश्यकता है जो मैं नहीं चाहता हूं। मैं आसपास के div

पर नियंत्रक को परिभाषित करना चाहता हूं क्या माता-पिता HTML तत्व पर परिभाषित नियंत्रक के साथ निर्देश पर एनजी-क्लिक का उपयोग करना संभव है?

उत्तर

33

यहां अद्यतन कोड है। हो सकता है कि आप यही खोज रहे थे।

एचटीएमएल:

<div data-ng-app="myApp"> 
    <div data-ng-controller="MyController"> 
     <my-directive data-ng-click="myFirstFunction('Hallo')"></my-directive> 
     <my-directive data-ng-click="mySecondFunction('Hi')"></my-directive> 
    </div> 
</div> 

कोणीय:

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

app.directive('myDirective', function(){ 
    return { 
     restrict: 'EA', 
     replace: true, 
     scope: { 
      eventHandler: '&ngClick' 
     }, 
     template: '<div id="holder"><button data-ng-click="eventHandler()">Call own function</button></div>' 
    }; 
}); 

app.controller('MyController', ['$scope', function($scope) { 
    $scope.myFirstFunction = function(msg) { 
     alert(msg + '!!! first function call!'); 
    }; 
    $scope.mySecondFunction = function(msg) { 
     alert(msg + '!!! second function call!'); 
    }; 
}]); 

संपादित

चेक समाधान है कि मैं jsFiddler में की गई है कि क्या आप के लिए देख रहे थे है?

http://jsfiddle.net/migontech/3QRDt/1/

+0

यह काम करने के लिए प्रतीत नहीं होता ... - मैं अभी भी 'doSomthing()' मेरी निर्देश –

+0

पर एनजी नियंत्रक प्रदान करने के लिए तो तुम एक समारोह चाहते हैं की जरूरत नहीं नियंत्रक में होने की लेकिन आपके निर्देश में? – migontech

+0

मैं कुछ इस तरह हैं:) 'app.directive ('myDirective', समारोह ({ वापसी { गुंजाइश: ' '

इस समय मैं केवल एक विशिष्ट क्लिक विशेषता जुड़ कर इस लक्ष्य को हासिल कर सकते हैं { onClick: 'और' } }; }); ' ' <बटन एनजी क्लिक = "onClick()"> ' –

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