2016-07-19 12 views
0

Hilfe mit Syntax bitte. Ich würde zwei Objekte analysiert (Daten in Tabelle Anzeige) ->Syntax * ngFor = '...' eckig 2

<tbody> 
     <tr *ngFor="let service_rec of list.servicelist" *ngFor= "let service_rec of list.storagelist"> 
      <td> {{ service_rec.name }} </td> 
      <td> {{ service_rec.status }}</td> 
      <td>{{ service_rec.total | byteFormat }}</td> 
      <td>{{ service_rec.used | byteFormat }}</td> 
      <td>{{ service_rec.free | byteFormat }}</td> 
     </tr> 
    </tbody> 

Wie kombinieren (mit Syntax) list.servicelict & list.storagelist,

ich habe Fehler "NaN undefined"

UPD:

<div class="panel-header text-center"> 
    <h1> Тест блок </h1> 
</div> 

<div class="row" *ngFor="let list of lists"> 
<div class="col-md-6"> 
    <table class="table table-bordered"> 
     <caption>{{ list.nodename }}</caption> 
     <thead> 
      <tr> 
       <th rowspan="2" style="text-align: center;">Название сервиса</th> 
       <th rowspan="2" style="text-align: center;">Статус</th> 
       <th colspan="3" style="text-align: center;">Файловая система</th> 
      </tr> 
      <tr> 
       <th>Всего</th> 
       <th>Использовано</th> 
       <th>Доступно</th> 
      </tr> 
     </thead> 
     <tbody> 
      <template ngFor let-service_rec [ngForOf]="list.servicelist"> 
      <tr *ngFor= "let service_rec of list.storagelist"> 
       <td> {{ service_rec.name }} </td> 
       <td style="width: 15%"> 
        <span [style.background-color]="service_rec.status == 'Online' ? 'green' : 'red'" class="label label-default"> 
         {{ service_rec.status }} 
        </span> 
       </td> 
       <td>{{ service_rec.total | byteFormat }}</td> 
       <td>{{ service_rec.used | byteFormat }}</td> 
       <td>{{ service_rec.free | byteFormat }}</td> 
      </tr> 
      </template> 
     </tbody> 
    </table> 
</div> 
</div> 

Wenn ich hinzufügen

Daten in der Zeile "Название сервиса" & "Статус" sind

gegangen
[ 
    {"nodename":"192.124.105.55", 
    "servicelist":[ 
     { 
     "id":"ec9471ec001c10b9fa286e1f52e39c5dc9485a7c2cfbf55145c26242bb98ec4d", 
     "name":"Nginx", 
     "status":"Online", 
     "servicecontrolled":true 
     }, 
     { 
      "id":"f4ca9e0badc6b23e3e36444bd7ee4a9efcd39de8e0bb4cdecb25b5a02ef86ba5", 
      "name":"Memcached", 
      "status":"Offline", 
     "servicecontrolled":true   
     }, 
     { 
      "id":"0a4bf3b5bb5f47ece9284052389ae02f6c9dba989ca34086a30e049ee3d8eb47", 
      "name":"Celery", 
      "status":"Offline", 
     "servicecontrolled":true 
     } 
    ], 
    "storagelist": 
    [ 
    { 
     "mountpoint":"/", 
     "total":188, 
     "used":28, 
     "free":161 
    }, 
    { 
     "mountpoint":"/boot", 
     "total":235, 
     "used":106, 
     "free":129 
    } 
    ] 

dieser Fehler ->click

+0

Es ist nicht möglich, herauszufinden, woher "NaN undefined" kommt, ohne zu sehen, welche tatsächlichen Daten Sie verwenden. Es wäre am besten, wenn Sie einen Plunker erstellen, der das Problem veranschaulicht. Sie können diese Vorlage verwenden https://angular.io/resources/live-examples/quickstart/ts/plnrr.html –

+0

Das hilft nicht. Ich sehe immer noch nicht, welche Daten Sie verwenden. Bitte erstellen Sie einen Plunker. –

+0

@ Günter Zöchbauer meine Daten sind ein Parse von JSON, ich bearbeite Code –

Antwort

1

Sie können nicht zwei strukturellen Richtlinien auf dem gleichen Element haben (2 x *ngFor) Wenn Sie mehr als eins benötigen, müssen Sie das Formular mit einem eindeutigen <template> Tag verwenden:

<tbody> 
    <template ngFor let-service_rec [ngForOf]="list.servicelist"> 
    <tr *ngFor= "let service_rec of list.storagelist"> 
     <td> {{ service_rec.name }} </td> 
     <td> {{ service_rec.status }}</td> 
     <td>{{ service_rec.total | byteFormat }}</td> 
     <td>{{ service_rec.used | byteFormat }}</td> 
     <td>{{ service_rec.free | byteFormat }}</td> 
    </tr> 
    </template> 
</tbody> 
+0

ich update code, schaue bitte –

+0

ich lade Bild (Fehler) in Frage –