第一次

时间:2016-02-11 18:51:27

标签: javascript angularjs

我在这里有一个例子: http://www.search-this.com/examples/angular-help/

如果双击"短信"在列表中它会弹出一个输入框。 键入" one"在输入框中单击更新按钮。 注意console.log 单击SmsResponseActionParmAndValue以展开并找到" Text Message"选项 点击ParmAndValue展开并注意Value属性有我们的" one"我们输入的价值。

现在在输入框中键入两个并查看console.log并注意它没有更新?它只是第一次更新?

请帮助......

2 个答案:

答案 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)
   };

问题是更新的模型没有指向内存中与原始对象相同的数组,因此我们必须更新原始对象指向的数组。