AngularJs赋值问题

$scope.showUpgradeForm = function(item){
    $scope.upgrade = item; 
    $scope.upgrade.vercode++;
    // 其它操作
}


$scope.showUpgradeForm = function(item){
    $scope.upgrade = angular.copy(item);
    $scope.upgrade.vercode++;
    // 其它操作
}

  

代码解释:我的JS代码里有一个list列表用于repeat显示,这里的item是从循环中传入的列表数据object。然后调用showUpgradeForm操作时问题来了,由于AngularJS的双向绑定机制,我这里对upgrade的vercode赋值导致list中的item也更新了,也就是显示的列表内的数据也跟着发生了变化。

解决思路:这个问题给人一看就是赋值指针出了问题,通过查询资料,果然。在JS中对变量赋值变量时,常规是会复制一份拷贝,但如果值是一个对象(Object)时,传入的将是对象的地址。

以上内容出自 http://my.oschina.net/yiqu/blog/547125

原文地址:https://www.cnblogs.com/james641/p/5763657.html