2015-12-16 7 views
5

तो मैं अब कुछ महीनों के लिए एंगुलरजेएस का उपयोग कर रहा हूं और मैंने इसका जवाब देने के लिए इंटरनेट और मेरे एंगुलरजेएस निर्देश पुस्तिका को खराब कर दिया है।लिंक क्या हैं: फंक्शन "पैरामीटर" (दायरा, तत्व, attrs)? AngularJS

link: function(scope, element, attrs) { 
    //body 
} 

वास्तव में क्या समारोह "गुंजाइश, तत्व, attrs" अंदर आइटम हैं:

निर्देशों में, मैं लगभग हमेशा कोड के इस ब्लॉक को देखते हैं? यह एक बेवकूफ सवाल हो सकता है लेकिन मुझे कहीं भी जवाब नहीं मिल रहा है।

धन्यवाद!

+0

पर कुछ भी नहीं है, आपको इसे Google पर करने की आवश्यकता है .. यह एक अच्छा लिंक है कि यह कैसे काम करता है http://www.angularjshub.com/examples/customdirectives/compilelinkfunctions/ –

उत्तर

5

मापदंडों scope, element, और attrs प्रलेखन here के अनुसार, अपने कस्टम निर्देश के लिए परिभाषित कर रहे हैं, लेकिन आप अपने तरह के उनका नाम बदल सकते हैं।

scope: यह आपके कस्टम निर्देश के लिए गुंजाइश, एक नियंत्रक में $scope

element के समान है: इस में विशेषताओं का सेट है: यह अपने कस्टम निर्देश का तत्व

attrs है आपका कस्टम निर्देश। (तत्व के गुण, सुधार के लिए @zeroflagL करने के लिए धन्यवाद किया जाना चाहिए!)

उदाहरण के लिए, यदि आप myDirective नामक कस्टम निर्देश का निर्माण, और आप शायद इस तरह अपने html partials में यह प्रयोग करेंगे:

<my-directive num-rows="3"></my-directive> 

यहाँ, num-rows अपने निर्देश के लिए एक विशेषता है, और आप अपने link समारोह में अपने मूल्य प्राप्त कर सकते हैं:,

function link(scope, element, attrs) { 
    console.log('num-rows:', attrs.numRows); 
    //you can change its value, too 
    attrs.$set('numRows', '10'); //attrs setter 

    //you can watch for its changes to trigger some event 
    attrs.$observe('numRows', function(newVal) { 
     console.log('trigger some event for the changes in numRows here'); 
    }); 
} 

इसके अलावा ऊपर के लिंक समारोह में, आप तत्व/निर्देश के लिए बाध्य कर सकते हैं एक क्रिया:

element.bind('click', function() { 
    console.log('do something with the click event'); 
}); 

मेरा सुझाव है कि आप दस्तावेज़ पढ़ने में कुछ समय बिताएं। लिंक फ़ंक्शन एक चौथा पैरामीटर ले सकता है जो आपके कस्टम निर्देश में आवश्यक किसी अन्य निर्देश का नियंत्रक है। उदाहरण के लिए:

require: '^ngModel' 
.... 

function link(scope, element, attrs, ngModelCtrl) { 
    .... 
} 
+1

_ "attrs: यह आपके कस्टम निर्देश में गुणों का सेट है" _ तत्व के गुण "होना चाहिए"। – zeroflagL

-1

गुंजाइश: यह आपके कस्टम निर्देश के लिए गुंजाइश, एक नियंत्रक में $scope के समान है

तत्व: यह आपके कस्टम निर्देश का तत्व है

attrs: कोई भी पैरामीटर

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