我有一个保存对象的方法。该对象在保存后添加到数组中。该对象具有许多属性。因此,在将对象添加到数组之前,我正在修改一些属性。很少有人不会在用户界面中反映出来。
代码:
HomeController.js
Error in eval(substitute(expr), envir, enclos) : expecting a single value
AdjustmentController.js
$scope.MainArray=[];
$scope.newItem={};
HTML:
$scope.Save = function(item){ $scope.newItem={}; var promiseObj= $http.post('My_Url',{expectedItem: item}); promiseObj.success(function(data,status){ $scope.newItem.Id= data; $scope.newItem.dataList= item.dataList; $scope.newItem.LatestComment = item.LatestComment; $scope.newItem.CreatedDate = item.CreatedDate; if($scope.MainArray.length==0){ $scope.MainArray.push($scope.newItem); } else{ $scope.MainArray.unshift($scope.newItem); } }) }
如果我控制并查看,则值会发生变化。但在UI中,它只更新了几个值,而 <body ng-controller="HomeController">
<div ng-controller="AdjustmentController">
<div ng-repeat="item in MainArray ">
<!-- This past is not updated -->
<span>{{item.LatestComment}}</span>
<span>{{item.CreatedDate}}</span>
<!-- This past is updated -->
<span>{{item.DataList[0].text}}</span>
<span>{{item.DataList[1].text}}</span>
<span>{{item.DataList[2].text}}</span>
<span>{{item.DataList[3].text}}</span>
</div>
</div>
</body>
和LatestComment
未更新。
我也尝试使用CreatedDate
,但它没有用。
答案 0 :(得分:0)
您需要在控制器加载时初始化变量 $ scope.MainArray ,然后在需要保存时需要重写它。
在您的控制器中定义变量,如下所示:
$scope.MainArray=[];
然后在保存对象函数中使用它。
答案 1 :(得分:0)
在这里,您只将项目发送到后端:
var promiseObj= $http.post('My_Url',{expectedItem: item});
在这里你希望它能被改变:
$scope.newItem.dataList= item.dataList
$scope.newItem.LatestComment = item.LatestComment;
$scope.newItem.CreatedDate = item.CreatedDate;
您的答案包含在数据对象中,而不是项。 item
不会以这种方式改变。