2016-07-04 7 views
14

मुझे बाइंडिंग का उपयोग करके किसी घटक को मानों की सरणी पास करने की आवश्यकता है, उदा।मैं घटक टेम्पलेट से इनपुट() के रूप में सरणी कैसे पास कर सकता हूं?

@Component({ 
    selector: 'my-component', 
    template: '<div data="[1, 2, 'test']"></div> 
}) 
export class MyComponent { 
    @Input() data: any[]; 
    ... 
} 

हालांकि, यह कोणीय व्यवहार करता है लगता है इस के रूप में string/string[1] (वास्तविक परियोजना में सरणी एक मार्ग है और मैं एक घटक है जो [routerLink] डायरेक्टिव है करने के लिए इस मार्ग में उत्तीर्ण होना)।

मैं इसके बारे में कैसे जा सकता हूं?

उत्तर

21

आप [] अन्यथा यह सब पर कोणीय द्वारा कार्रवाई नहीं कर रहा है के साथ संपत्ति रैप करने के लिए की जरूरत है:

[data]="[1, 2, 'test']" 

आपका उदाहरण घटक अंदर से data स्थापित करने के लिए लगता है। यह बाध्यकारी काम नहीं है। अपने घटक से बाहर डेटा पास करने के लिए आप अपने घटक के साथ क्या कर सकते हैं <my-component [data]="[1, 2, 'test']"></my-component> है।

1

आम तौर पर जब आप किसी अन्य घटक के भीतर घटक निहित होते हैं तो आप केवल इनपुट का उपयोग करते हैं।

एक और घटक में

तो, की तरह कुछ: <my-component [data]= ...>

1

तो चलो यहाँ से शुरू ... कोणीय 2 + में सभी इनपुट एक स्ट्रिंग नीचे पारित करेंगे अगर वे कोष्ठक के आसपास नहीं मिलता है की सुविधा देता है ...

तो वहाँ 2 तरीके नीचे अपने मूल्यों पारित करने के लिए ...

यदि आप इसे इस प्रकार लिख कर रहे हैं: '<div data="[1, 2, 'test']"'

आप मूल रूप से के रूप में यह मिलता है "[1, 2, 'परीक्षण']" (स्ट्रिंग के रूप में) ...

जिस तरह से आप कर नीचे तार पारित करने के लिए एक अच्छा तरीका है, और आप भी प्रक्षेप का उपयोग करें और जैसे कि यह नीचे गुजर से पहले जावास्क्रिप्ट के साथ मिश्रण कर सकते हैं 'कोणीय {{संस्करण}}'

तो किसी सरणी या किसी जावास्क्रिप्ट कोई-डंक मूल्य, तो आप इस तरह अपने इनपुट के आसपास [] उपयोग करने की आवश्यकता ...

<div [data]="[1, 2, 'test']"></div> 
के रूप में यह नीचे पारित करने के लिए
संबंधित मुद्दे

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