2016-08-20 10 views
16

में विशेषताओं के माध्यम से पुनरावृति करने के लिएकैसे यहाँ मेरी वस्तु है एक वस्तु कोणीय 2

let obj = { 
abc:["some text", "some more text"], 
xyz:["more text", "what do you think?", "I'm tired now"] 

} 

यहाँ पाश करने के लिए अपने प्रयास फेंक है (यह गतिशील चाबियों का n संख्या है। मैं केवल नीचे दिए गए उदाहरण में दो दिखाया है) उपरोक्त और सभी मानों को मुद्रित करें

<div *ngFor='let item of obj ; let i = index;'> 
      <p *ngFor="let value of obj.i">{{value}} 
</div> 

लेकिन उपर्युक्त काम नहीं करता है। मैं गलत क्या कर रहा हूं और सही वाक्यविन्यास क्या है?

generateArray(obj){ 
    return Object.keys(obj).map((key)=>{ return obj[key]}); 
} 
+0

आप 'obj [मैं]' 'बजाय obj.i' की कोशिश की? –

उत्तर

20

आप कुछ इस तरह कर सकता है: जैसे

<li *ngFor="let o of obj"> 
    <p *ngFor="let objArrayElement of generateArray(o)"> {{objArrayElement}} </p> 
</li> 

जहां generateArray लग रहा है जेनरएरे फ़ंक्शन इस तरह दिखता है-

generateArray(obj){ 
    return Object.keys(obj).map((key)=>{ return {key:key, value:obj[key]}}); 
} 

और टेम्पलेट -

<li *ngFor="let item of generateArray(data)">{{item.key}}: {{item.value}}</li> 
+1

यह बहुत अच्छा है। अच्छा काम! – Aarmora

+0

@Aarmora यह जानकर अच्छा लगा कि यह आपके लिए सहायक था। :) – eg16

+3

लेकिन एंजुलर 2 में ओबीजे की अनुमति नहीं है, क्योंकि ओबीजे पुनरावृत्त नहीं है, सही? – Ayyash

18

मामूली संशोधन @ eg16 के जवाब देने के लिए और यह मेरे लिए एक आकर्षण की तरह काम किया -

:

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