2016-12-26 3 views
0

Ich habe Artikel aufgelistet und es ist Kinder mit ng-Wiederholung.Wie aktualisiere ich Daten in bestimmte Elemente?

have items = [ 
    {item.id:1, 
    item.name :'item1', 
    item.children: [ 
     {item.id:11, 
     item.name :'child1', 
     }, 
     {item.id:22, 
     item.name :'child2', 
     }, 
     {item.id:33, 
     item.name :'child3', 
     }] 
    }, 
    {item.id:2, 
    item.name :'item2', 
    item.children: [ 
     {item.id:12, 
     item.name :'child22', 
     }, 
     {item.id:23, 
     item.name :'child33', 
     }, 
     {item.id:34, 
     item.name :'child44', 
     }] 
    } 
]; 

<div id = "item.id" ng-repeat="item in vm.items"> 
    <div>{{item.name}}</div> 
    <div id = "child.id" ng-repeat="child in item.children"> 
    <div>{{child.name}}</div> 
    </div> 

, als wenn ich aktualisiert Kind erhalten z.B.

 {item.id:34, 
     item.name :'child44_renamed', 
     } 

Ich möchte eine untergeordnete Daten in Element, wo es gerendert wurde platzieren. ist es möglich, es zu tun?

Vielen Dank für den Rat im Voraus.

Antwort

1

Ja, Sie können die Struktur Ihres Array-Objekts items ändern und Angular wird das Ganze automatisch neu rendern.

Die einfachste Methode zur Bearbeitung von JavaScript-Objekten und -Arrays besteht in der Verwendung einer Bibliothek, z. B. lodash. Sie können dies auch mit einfachem JavaScript tun, aber mit einer Bibliothek sparen Sie viel Zeit und Energie.

Mit lodash, zum Beispiel, können Sie die item basierend auf id und name finden und dann die Änderungen vornehmen.

+0

danke. aber ist es möglich, array direkt im html-element zu ändern, wo es gerendert wurde? – Serhiy

+0

Warum musst du es so machen? Möchten Sie nicht erneut rendern? – tomepejo

+0

stellen Sie sich vor, wenn das Kind auch Kinder hat und Kinder Kinder haben. Wie bekomme ich child.array, ändere es und lege es an die Stelle zurück, wo es gerendert wurde? – Serhiy

Verwandte Themen