2014-07-27 70 views
4

自動更新JSON的連接部分有下一個JSON結構:我如何使用angularjs

{ 
"items": [ 
    {"name":"item1"}, 
    {"name":"item2"}, 
    {"name": "item3"} 
], 
"groups": [{ 
    "name": "group1", 
    "items": ["item1", "item3"] 
}, 
{ 
    "name": "group2", 
    "items": ["item2", "item3"] 
}, 
{ 
    "name": "group3", 
    "items": ["item1", "item2"] 
}] 

}

正如你可以在我的組看我有項目的名稱。 有沒有辦法在angularjs中自動更新group> items中的字符串,當特定項目的名稱發生更改時。 (有沒有辦法連接json模型的特定部分?)

謝謝。

回答

3

您可以爲item數組中的每個項目設置深度$ watch。當項目的變化,遍歷組項目,並用新名稱替換舊名稱:

angular.forEach($scope.model.items, function (item) { 
    $scope.$watch(function() { return item; }, function (newVal, oldVal) { 
     angular.forEach($scope.model.groups, function (group) { 
      var items = group.items; 
      var itemIndex = items.indexOf(oldVal.name); 
      if (itemIndex >= 0) { 
       items[itemIndex] = newVal.name; 
      } 
     }); 
    }, true); 
}); 

Demo Fiddle

+0

美麗,謝謝了很多! –