2016-12-26 7 views
0

私はアイテムをリストアップしており、ng-repeatを使っている子供です。私は、例えば、更新の子供を受ける場合よりも更新されたデータを特定の要素に配置する方法は?

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> 

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

レンダリングされた要素に子データを配置したいと考えています。 これを行う方法はありますか?

事前にアドバイスをいただきありがとうございます。

答えて

1

はい、items配列オブジェクトの構造を変更することができ、Angularは自動的に全体を再描画します。

JavaScriptオブジェクトおよび配列を操作する最も簡単な方法は、lodashなどのライブラリを使用することです。 JavaScriptを使用しても可能ですが、ライブラリを使用すると時間とエネルギーが大幅に節約されます。

たとえば、lodashを使用すると、idnameに基づいてitemが見つかって変更が加えられます。

+0

ありがとうございました。しかし、レンダリングされたhtml要素で配列を直接変更することは可能ですか? – Serhiy

+0

なぜあなたはそれを行う必要がありますか?再レンダリングしたくないですか? – tomepejo

+0

子供が子供も持っていて、子どもも子供を持っていると想像してください。どのようにchild.arrayを取得し、それを変更し、レンダリングされた場所に戻す? – Serhiy

関連する問題