2016-02-05 10 views
6

मैं 1.5 घटकों का उपयोग कर रहा हूं, मुझे लगता है कि हालांकि यह महत्वपूर्ण नहीं है।टेम्पलेट फ़ंक्शन घटक बाइंडिंग को इंटरपोलेट नहीं कर रहा है

मैं एक अभिभावक नियंत्रक और एक बच्चे निर्देश के बीच बाध्यकारी एक = करने की कोशिश कर रहा हूं। बच्चा अलग-अलग बाध्यकारी रूप से बाध्यकारी अंतरण कर रहा है; vm.data के बजाय नियंत्रक में परिभाषित डेटा में अंतरण करने के बजाय, यह एक स्ट्रिंग के रूप में सचमुच vm.data बाहर आ रहा है।

यदि मैं @ के साथ बाध्यकारी एक तरफ कोशिश करता हूं, तो फिर, "इंटरपोलेटेड" मान {{vm.data}} में शाब्दिक रूप से परिणाम देता है।

मैं बाल नियंत्रक के टेम्पलेट में मूल नियंत्रक में परिभाषित स्ट्रिंग कैसे प्राप्त कर सकता हूं?

angular 
    .module('app', []) 
    .controller('Ctrl', function() { 
    this.str = '<0>, blah, <1>'; 
    }) 
    .component('appComponent', { 
    restrict: 'E', 
    controller: 'Ctrl as vm', 
    template: '<div><app-str appstr-data="{{vm.str}}"></app-str></div>' 
    }) 
    .component('appStr', { 
    bindings: { appstrData: '@' }, 
    restrict: 'EA', 
    template: function($element, $attrs) { 
     console.log($attrs.appstrData) 
     return '<span>'+$attrs.appstrData+'</span>'; 
    } 
    }); 

https://plnkr.co/edit/VWVlhDbhP2uDRKtXJZdE?p=preview

उत्तर

3

आप बच्चे में प्रस्तुत करना आप केवल बच्चे टेम्पलेट के अंदर इसका इस्तेमाल करने {{appStr.appstrData}} प्रक्षेप का उपयोग करना चाहिए पाने के लिए स्ट्रिंग माता पिता नियंत्रक में परिभाषित प्राप्त करना चाहता था तो।

आपको सबसे पहले बदलने की जरूरत है, आप appStr टेम्पलेट से गलत template लौट रहे हैं।

के बजाय

return '<span>'+$attrs.appstrData+'</span>'; 

उपयोग

return '<span>{{appStr.appstrData}}</span>'; 

मूल रूप से तुम यहाँ की तरह घटक नाम appStr है, घटक bindings का उपयोग करने की घटक नाम का उपयोग करना चाहिए ताकि क्यों चर के बंधन का उपयोग कर सुलभ हो सकता है {{appStr.appstrData}}

घटक

.component('appStr', { 
    bindings: { appstrData: '@' }, 
    restrict: 'EA', 
    template: function($element, $attrs) { 
     return '<span>{{appStr.appstrData}}</span>'; //<--change here 
    } 
}); 

Demo Plunkr


Plunkr with = binding


Plunkr with no bindings (isolate: false) कोई अलग गुंजाइश

+0

@Daniel_L जब तुम माता पिता घटक विशेषता तक पहुँच रहे हैं देखने का मतलब है, आप नहीं मिल सका 'विशेषता 'के बाध्यकारी' मूल्यांकन '.. एन बाध्यकारी से पहले मूल्य को संशोधित करने का सवाल, मुझे कोई फर्क नहीं पड़ता कि यह कोई फर्क नहीं पड़ता है .. आप भी बच्चे के घटक –

+0

से उस मूल्य को दोबारा सुधार सकते हैं, मैंने देखा, मैंने देखा कि मैं मूल्यांकन मूल्य तक पहुंच नहीं पा रहा था बाध्य विशेषता का। इसके लिए मेरा लक्ष्य एक HTML तत्व के साथ '<0> 'को प्रतिस्थापित करना था। 1.4 में मैं 'लिंक' विधि का उपयोग करूंगा लेकिन यदि यह 1.5 में उपलब्ध नहीं है तो मुझे यकीन नहीं है कि क्या करना है। –

+0

वास्तव में मुझे यह एक कारखाने का उपयोग करके काम करना पड़ा जो '$ sce' सेवा का उपयोग करता है। –

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