簡體   English   中英

在Angularjs中沒有$ scope的范圍對象不會更改

[英]Scope object doesn't change without $scope in Angularjs

我在這里設置了一個小小提琴http://jsfiddle.net/SPMfT/137/我想知道是否有人可以解釋為什么更改對象不起作用,同時更改對象的屬性或更改對象前面的作品中有“$ scope”。

原因是我試圖避免在控制器功能中使用范圍,因此它們更容易測試。

我的真正任務是使用ng-click =“reset(current,master)”

$scope.reset = function (current, master) { angular.copy(current, master); }

這不起作用,而這有效:

$scope.reset = function (current, master) { angular.copy($scope.current, master); }

$ scope.current和$ scope.master都存在

干杯

更新:

我的問題是我沒有更新對象本身。 要解決問題,請使用例如

angular.extend(data, { name: 'change', game:'change' });

要么

angular.copy({ name: 'change', game:'change' }, data);//Pay attention to order

原因是您正在創建一個新對象(因此是一個不同的引用)並將其分配給以前指向同一對象的局部變量。

$scope.change = function (data) {
    data = { name: 'change', game:'change' };
}

data傳遞變量保存到你的同一對象的引用$scope.data但你分配一個局部變量指向的對象A的一個新對象B的引用, 在本地 此時, $scope.data仍然保存對之前相同對象的引用。 您所做的只是更改對局部變量的引用,並在函數末尾將其丟棄。

在您的特定情況下,它應該工作(使用current$scope.current )。 我相信你正在反轉angular.copy的參數(source, destination) 有關簡單演示,請參閱此更新的小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM