2015-12-14 7 views
9

मैं v1.5 घटक का उपयोग कर रहा हूं, जो अनिवार्य रूप से (जहां तक ​​मेरी समझ फैली हुई है) सर्वोत्तम अभ्यास निर्देशों के लिए एक रैपर है।Angularjs के v1.5 घटक के भीतर विशेषताओं का उपयोग कैसे करें?

घटक के 1.5 रिलीज के बारे में

अधिक जानकारी यहां पाया जा सकता: http://toddmotto.com/exploring-the-angular-1-5-component-method/

मैं निम्नलिखित है:

<span>Correclty showing: {{ data.type }}</span> 
<book class="details" type="data.type"></book> 

और यह घटक परिभाषा है:

angular 
.module('app') 
.component('book', { 
    bindings: { 
     type: '=' 
    }, 
    template: function($element, $attrs) { 
     // Have tried A): 
     // console.log($attrs.type); // <- undefined 

     // And B): 
     $attrs.$observe('type', function(value) { 
      console.log(value); // <- undefined 
     }); 

     // But.. C): 
     return "This works though {{ book.type }}"; // <- renders 
    } 
}); 

दोनों A) और B) विविधता undefined लौटें। C) सही ढंग से प्रस्तुत करता है।

क्या टेम्पलेट स्ट्रिंग को वापस करने से पहले टेम्पलेट फ़ंक्शन के भीतर विशेषताओं तक पहुंचने का कोई तरीका है?

उत्तर

13

1.5 में, टेम्पलेट यूआरएल अब दस्तावेज़ों के अनुसार इंजेक्शनबेल लेता है: https://docs.angularjs.org/guide/component। यदि आप ng-srict-di का उपयोग करते हैं तो आपको तब तक कोई त्रुटि नहीं मिलेगी जब तक आप इंजेक्टेबल निर्दिष्ट नहीं करते .... मैं सिरदर्द को बचाने और कोड को साफ रखने के लिए ng-annotate का उपयोग कर रहा हूं।

import IRootElementService = angular.IRootElementService; 
    import IAttributes = angular.IAttributes; 

    angular.module('app').component('book', { 

     /*@ngInject*/ 
     templateUrl($element:IRootElementService, $attrs:IAttributes) { 
      // access to the $element or $attrs injectables 
     } 

    }); 

या बिना वेनिला जे एस में एनजी-टिप्पणी करें:: यहाँ (टाइपप्रति में) एक उदाहरण है

angular.module('app').component('book', {  
     templateUrl: ['$element', '$attrs', function($element, $attrs) { 
      // access to the $element or $attrs injectables 
     }], 
    }); 
+0

मैं एनजी-सख्त-डी, एनजी-व्याख्या करते हैं, और उसके बाद एक बहुत ही दिलचस्प दिखाई दे रही है @ ngInject? क्या आप स्पष्ट कर सकते हैं कि एक अटैच इंजेक्शन योग्य कैसे हो सकता है? मैं अन्य उत्तरदायित्वों के आधार पर टेम्पलेट यूआरएल बनाने का सुझाव देने का उत्तर ढूंढ रहा हूं। – iJames

+0

यह घटक वास्तुकला में कोणीय 1.5 दस्तावेज़ों में है, $ तत्व और $ attrs इंजेक्शन योग्य हैं। अधिक जानकारी के लिए उत्तर में जुड़े घटक गाइड देखें। – Jeff

+1

@Jeff $ element सेवा को इंजेक्ट करना आवश्यक है? मैंने इसे इंजेक्शन दिए बिना कोशिश की और ऐसा लगता है कि वैसे भी काम करता है। – user449689

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