2016-02-09 30 views
11

the docs (विशेष रूप से, सारणी के निर्देशों की तुलना करने वाली तालिका) के अनुसार 'आवश्यकता' का उपयोग करके, कोणीय घटकों को अन्य निर्देशों की आवश्यकता होती है (या यह केवल घटक हैं?)। हालांकि, घटकों में एक लिंक फ़ंक्शन नहीं है, जो आवश्यक नियंत्रक तक पहुंच प्रदान कर सकता है। प्रलेखन के विपरीत The source, ऐसा लगता है कि घटकों को बनाते समय 'आवश्यकता' का उपयोग करना संभव नहीं है। कौन सा सही है?कोणीय घटक

उत्तर

17

उद्धृत स्रोत पुराना है। 1.5.0 के रूप में, अन्य घटकों में घटक नियंत्रक can be required (यह निर्देशों पर लागू होता है)।

link से सहायता के बिना मार्गदर्शिका shows the way how the components and directives should interact मार्गदर्शिका से एक उदाहरण 1.5।

जब require object and bindToController एक साथ उपयोग किया जाता है, तो आवश्यक नियंत्रक उदाहरण गुणों के रूप में वर्तमान नियंत्रक को आवंटित किए जाते हैं।

क्योंकि यह निर्देश जोड़ने के दौरान होता है, आवश्यक नियंत्रक नियंत्रक कन्स्ट्रक्टर में उपलब्ध नहीं होते हैं, यही कारण है कि $onInit magic method है। यदि यह मौजूद है, it is executed right after adding required controllers से this

दोनों

app.directive('someDirective', function() { 
    return { 
    scope: {}, 
    bindToController: {}, 
    controllerAs: 'someDirective', 
    require: { 
     anotherDirective: '^anotherDirective' 
    }, 
    controller: function ($scope) { 
     console.log("You don't see me", this.anotherDirective); 

     this.$onInit = function() { 
     console.log("Now you do", this.anotherDirective); 
     }; 
    } 
    } 
}); 

और

app.component('someComponent', { 
    controllerAs: 'someComponent', 
    require: { 
    anotherDirective: '^anotherDirective' 
    }, 
    controller: function ($scope) { 
    console.log("You don't see me", this.anotherDirective); 

    this.$onInit = function() { 
     console.log("Now you do", this.anotherDirective); 
    }; 
    } 
}); 

घोषणा शैलियों हुड के नीचे समतुल्य हैं और 1.5 में दूसरे के स्थान पर इस्तेमाल किया जा सकता है, और component एक संक्षिप्त एक है।

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