模型值未完全反映在UI中 - Angular js

时间:2016-11-04 05:01:24

标签: angularjs

我有一个保存对象的方法。该对象在保存后添加到数组中。该对象具有许多属性。因此,在将对象添加到数组之前,我正在修改一些属性。很少有人不会在用户界面中反映出来。

代码:

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,但它没有用。

2 个答案:

答案 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不会以这种方式改变。