我在这里有一个例子: http://www.search-this.com/examples/angular-help/
如果双击"短信"在列表中它会弹出一个输入框。 键入" one"在输入框中单击更新按钮。 注意console.log 单击SmsResponseActionParmAndValue以展开并找到" Text Message"选项 点击ParmAndValue展开并注意Value属性有我们的" one"我们输入的价值。
现在在输入框中键入两个并查看console.log并注意它没有更新?它只是第一次更新?
请帮助......
答案 0 :(得分:0)
在所选对象中更新,而不是在主JSON对象中。
$ scope.updateDetails = function(){
console.log("update");
console.log($scope.actions); //
console.log($scope.selectedAction); // look in this object updated you have to override it to original object or use 2 times ng-repeat to bind.
};
答案 1 :(得分:0)
我知道这非常难看,但它是一个解决方案:
$scope.updateDetails = function() {
angular.forEach($scope.actions.SmsResponseActionParmAndValue,function(action){
if(action.Description === $scope.selectedAction.Description){
console.log($scope.selectedAction)
action.ParmAndValue = $scope.selectedAction.ParmAndValue
return;
}
});
console.log($scope.actions)
};
问题是更新的模型没有指向内存中与原始对象相同的数组,因此我们必须更新原始对象指向的数组。