तो भीतर माता पिता दायरे तक पहुँचने के लिए, आप को परिभाषित कर सकते टोबियास और जेफकैसे कोणीय प्रलेखन वेबसाइट पर एक निर्देश लिंक
angular.module('docsTransclusionExample', [])
.controller('Controller', ['$scope', function($scope) {
$scope.name = 'Tobias';
}])
.directive('myDialog', function() {
return {
restrict: 'E',
transclude: true,
scope: {},
templateUrl: 'my-dialog.html',
link: function (scope, element) {
scope.name = 'Jeff';
}
};
});
यदि आप नाम है {{नाम}} यह
कहूँगाThe name is Tobias
मैं लिंक फ़ंक्शन में टोबीस तक पहुंचने का प्रयास कर रहा हूं। लिंक फ़ंक्शन के अंदर से, मुझे $ scope.name मान Tobias के बराबर कैसे मिलेगा?
'$ parent', जवाब है Ufuk Hacıoğulları के जवाब के रूप में, लेकिन दो बार सोचना अगर आप * वास्तव में * ऐसा करना चाहते हैं - यह आपके निर्देश के encapsulation तोड़ता है। पैरामीटर के रूप में इच्छित किसी भी डेटा को पास करना एक बेहतर तरीका है, उदा। 'स्कोप: {parentName: '='} 'और फिर' '। –
धन्यवाद निकोस! निर्देश वर्तमान में दायरे के साथ काम कर रहा है: झूठी और कोई हस्तांतरण नहीं। उस स्थिति में, मैं $ scope.name का उपयोग कैसे करूं? क्या यह सिर्फ $ scope.name होगा? क्या मुझे लिंक फ़ंक्शन के पैरामीटर में $ स्कोप पास करने की आवश्यकता होगी? –
'स्कोप: झूठा' मुझे "संचार" करता है कि निर्देश और उसके माता-पिता के बीच एक आम/फ्लैट "नामस्थान" है। इस मामले में 'नाम' नामक दो "चीजें" को समझ में नहीं आता है - यह पूछना है कि "मेरे पास जेएस फ़ंक्शन में एक ही नाम के साथ 2 'var क्यों नहीं हो सकता है"। मैं जो कहने की कोशिश कर रहा हूं वह यह है कि आपको इस बात पर विचार करना चाहिए कि क्या इसे किसी प्रकार की रीडिज़ाइन की आवश्यकता है। –