$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)時,傳入的將是對象的地址。
