2013-09-21 17 views
13

मैं अपने डेटा के दायरे में कुछ डेटा डालने की कोशिश कर रहा हूं। यहां मेरा jsFiddle है।कोणीय नियंत्रक काम नहीं कर सकते हैं?

निम्नलिखित कोड अच्छी तरह से काम

.directive('directive1', function() { 
    return: { 
     scope: true, 
     controller: function ($scope) { 
      $scope.name = 'world'; 
     } 
    } 
}) 

<div directive1> 
    <p>{{ name }}</p> 
</div> 

लेकिन इन कोड

.directive('directive2', function() { 
    return: { 
     scope: true, 
     controller: function() { 
      this.name = 'world'; 
     }, 
     controllerAs: 'testCtrl' 
    } 
}) 

<div directive2> 
    <p>{{ testCtrl.name }}</p> 
</div> 

काम नहीं करते क्या मेरी कोड में गलत है? या मैंने controllerAs के बारे में कुछ गलत समझा?

+0

मुझे नहीं पता कि आप ऐसा कर सकते हैं या नहीं। आपने '$ scope' के बिना नियंत्रक को परिभाषित किया है। 'नियंत्रक एएस 'क्या है? –

+1

@ मैक्सिमशौस्टिन [कोणीय 1.2 डॉक्स] (http://docs.angularjs.org/guide/directive), निर्देश – user2331095

+1

निर्देश के लिए एक नई सुविधा :) –

उत्तर

16

नियंत्रक was added in 1.2.0 निर्देशों के लिए समर्थन के रूप में, तो आपको लिंक किए गए पहेली से 1.0.2 के बजाय नवीनतम संस्करण का उपयोग करना होगा। This way यह आपके जैसा काम करता है।

+0

आप सही हैं। कोणीय 1.2 में माइग्रेट करने के बाद, यह अच्छी तरह से काम करता है। धन्यवाद ~! – user2331095

-1

कृपया निर्देशक नियंत्रक और सामान्य नियंत्रक से भ्रमित न हों! तो हाँ, एक निर्देशक में नियंत्रक हो सकता है, जो कुछ नियंत्रित करता है। लेकिन यह एक सामान्य नियंत्रक के बराबर नहीं है!

निर्देशक तर्क निर्देशक में निर्देशक तर्क डालने में वास्तव में कोई समस्या नहीं है, लेकिन वास्तव में निर्देशक नियंत्रक, क्रॉस निर्देश संचार के लिए उपयोग किया जाता है। एक निर्देश का एक नियंत्रक उदाहरण दूसरे निर्देश में इंजेक्शन दिया जा सकता है जो एक ही तत्व (या बाल तत्व) पर बैठता है।

"नियंत्रक के रूप में" अभिव्यक्ति सामान्य नियंत्रकों के लिए है। तो बस अपने आप को एक पक्ष करो और अपने तर्क को निर्देश लिंक लिंक में डाल दें।

+0

नियंत्रक के विवरण के लिए धन्यवाद! असल में मैं एक सामान्य नियंत्रक और निर्देशक नियंत्रक के साथ उलझन में हूँ। एक बार फिर धन्यवाद! – user2331095

+13

यह उत्तर भ्रामक है - एक निर्देश नियंत्रक ** ** सामान्य नियंत्रक के समान है, सिवाय इसके कि 'ngController' निर्देश द्वारा तत्काल होने की बजाय, यह उस निर्देश द्वारा तत्काल है जिसे आप इसे संबद्ध करते हैं। यह वही काम करता है, इंजेक्शनबेल, 'कंट्रोलरएएस', सबकुछ। तर्क निर्देशक के नियंत्रक में जा सकता है/जाना चाहिए - लिंक फ़ंक्शन मुख्य रूप से डोम मैनिपुलेशन के लिए उपयोग किया जाना चाहिए। –

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