एंगुलरजेएस निर्देशों के बारे में मैं एक ऐसी स्थिति में भाग गया जहां मैं एक और निर्देश के भीतर से एक निर्देश बुला रहा हूं और मेरे पास निम्नलिखित प्रश्न हैं।निर्देशों के भीतर नेस्टिंग निर्देश
- मैं अपने लिंक फ़ंक्शन में scope.bindValue क्यों नहीं रेफर कर सकता हूं? क्या कोई तरीका है कि मैं scope.bindValue से एक मान की गणना कर सकता हूं और इसे दायरे में सेट कर सकता हूं?
- उपनिर्देशिका दायरे में "@" का उपयोग क्यों कर सकती है: {} लेकिन लिंक फ़ंक्शन में scope.value = attrs.value का उपयोग नहीं करें?
के नीचे देखा जा सकता है सभी http://jsfiddle.net/sdg9/AjDtt/13/
एचटीएमएल में:
<directive bind-value="12" value="7"></directive>
जे एस:
var myApp = angular.module('myApp', []);
var commonTemplate = '<div>{{name}} bind-value is: {{bindValue}} </div><div>{{name}} value is: {{value}} </div><div>{{name}} add one to bind-value is: {{addOneBindValue}} </div><div>{{name}} add one to value is: {{addOneValue}} </div><br/>';
myApp.directive('directive', function() {
return {
scope: {
bindValue: "@",
},
template: commonTemplate + '<br/><sub-directive bind-value="{{value}}" value="{{value}}"></sub-directive>',
restrict: 'E',
link: function (scope, element, attrs) {
scope.name = "Directive";
scope.value = attrs.value;
scope.addOneBindValue = parseInt(scope.bindValue) + 1;
scope.addOneValue = parseInt(scope.value) + 1;
}
};
});
myApp.directive('subDirective', function() {
return {
scope: {
bindValue: "@"
},
template: commonTemplate,
restrict: 'E',
link: function (scope, element, attrs) {
scope.name = "SubDirective";
scope.value = attrs.value;
scope.addOneBindValue = parseInt(scope.bindValue) + 1;
scope.addOneValue = parseInt(scope.value) + 1;
}
};
});
आउटपुट:
Directive bind-value is: 12
Directive value is: 7
Directive add one to bind-value is: null <--- why?
Directive add one to value is: 8
SubDirective bind-value is: 7
SubDirective value is: <--- why?
SubDirective add one to bind-value is: null
SubDirective add one to value is: null
धन्यवाद यह attrs के साथ काम करने में सक्षम था। $ निरीक्षण()। मैं उपनिर्देशिका पर '@' का उपयोग करने के लिए चिपक जाऊंगा क्योंकि यह मेरे परिदृश्यों के लिए पर्याप्त होना चाहिए। http://jsfiddle.net/sdg9/AjDtt/16/ – Steven
@ स्टेवेन, मैं एक ही समय में एक पहेली बना रहा था :) मेरी पहेली में, मैं यह भी दिखाता हूं कि उपनिर्देशिका में 'मूल्य' कैसे प्राप्त करें। मैंने कुछ और जानकारी के साथ अपना जवाब भी अपडेट किया। –
"यदि विशेषता मान स्थिरांक हैं, तो शायद @ @ 'का उपयोग नहीं किया जाना चाहिए" जब मैं निर्देशों को घोंसला कर रहा हूं तो क्या होगा? मेरा बाहरी निर्देश <निर्देशक मूल्य = "7"> जैसा दिख सकता है लेकिन चूंकि यह टेम्पलेटURL का उपयोग कर रहा है, यह एक इंटरप्लाटेड विशेषता के माध्यम से मेरे उप निर्देश को कॉल कर रहा है। क्या यह templateURL का सही उपयोग है या क्या मुझे तत्व को angular.element के माध्यम से स्वयं बनाना चाहिए और इसे टेम्पलेट में जोड़ना चाहिए? बाद में इंटरपोलेटेड विशेषताओं से बचने के लिए मुझे बहुत सारे अतिरिक्त काम की तरह लगता है। – Steven