2016-05-25 17 views
7

yılında Ngfor bir json nesnesi, benim şablon varyineleme ben Ngfor bir json nesnesi yineleme sorun yaşıyorum açısal 2

<h1>Hey</h1> 
    <div>{{ people| json}}</div> 
    <h1>***************************</h1> 
    <ul> 
    <li *ngFor="#person of people"> 
     {{ 
      person.label 
     }} 
    </li> 
</ul> 

kişi json nesnesi olduğunu ben

ve bitirmek için, burada bir parçasıdır: | ', ben rhe sonucu yaşıyorum yineleme için çalışıyorum (insanlar json) ve listeyi almıyorum, burada bir ekran görüntüsü json dosyası:

{ 
"actionList": { 
"count": 35, 
"list": [ 
    { 
    "Action": { 
     "label": "A1", 
     "HTTPMethod": "POST", 
     "actionType": "indexation", 
     "status": "active", 
     "description": "Ajout d'une transcription dans le lac de données", 
     "resourcePattern": "transcriptions/", 
     "parameters": [ 
      { 
       "Parameter": { 
        "label": "", 
        "description": "Flux JSON à indexer", 
        "identifier": "2", 
        "parameterType": "body", 
        "dataType": "json", 
        "requestType": "Action", 
        "processParameter": { 
         "label": "", 
         "description": "Flux JSON à indexer", 
         "identifier": "4", 
         "parameterType": "body", 
         "dataType": "json", 
         "requestType": "Process" 
        } 
       } 
      }, 

Eğer kutunun dışında üzerinde yineleme böylece beni

cevap

12

Sizin people nesne bir dizi değil yardım etmek çekinmeyin.

  • Bir alt özellik üzerinde yineleme yapmak istiyorum:

    iki seçenek vardır. Örneğin:

    <ul> 
        <li *ngFor="#person of people?.actionList?.list"> 
        {{ 
         person.label 
        }} 
        </li> 
    </ul> 
    
  • Sen nesnenin anahtarları üzerinde yineleme yapmak istiyorum.

    @Pipe({name: 'keys'}) 
    export class KeysPipe implements PipeTransform { 
        transform(value, args:string[]) : any { 
        if (!value) { 
         return value; 
        } 
    
        let keys = []; 
        for (let key in value) { 
         keys.push({key: key, value: value[key]}); 
        } 
        return keys; 
        } 
    } 
    

    ve bunu şu şekilde kullanın::

    <ul> 
        <li *ngFor="#person of people | keys"> 
        {{ 
         person.value.xx 
        }} 
        </li> 
    </ul> 
    

    fazla ayrıntı için bu yanıta bakın:

  • Bu durumda, özel bir boru uygulamak gerekir
+1

Çok teşekkür ederim, Bahsettiğin gibi pipoyu ekledim, şablonumda buna benzer bir şey söylüyorum ve hala hiçbir şey alamıyorum:

  • {{ msg.value.Action.label }}
  • // i bu şekilde çalışıyorum, her eylem düğümü – Anna

    +0

    altında tüm etiketleri alma örneğin:

  • : A120 etiketini alıyorum ve ilk etiketini almıyorum ve sadece bir öğe almıyorum bir liste, normal mi? – Anna

  • +0

    Bu şekilde indeksi eklemeyi denedim, işe yaramadı:

  • {{ obj.value.list [i] .Action.label }}
  • // Listenin içindeki indeks değerini nasıl geçebilirim ?? – Anna