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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM