Angularjs 如何查看子控制器更改的父控制器变量

Angularjs 如何查看子控制器更改的父控制器变量,angularjs,angularjs-scope,Angularjs,Angularjs Scope,每次更改user.preferences时,我都会尝试保存它们,因此user.preferences是一个应用程序变量 HTML 在app.js上 vm.preferences = localStorage.preferences === undefined ? initialPreferences : JSON.parse(localStorage.preferences) ; $scope.$watch('App.preferences',function() {

每次更改user.preferences时,我都会尝试保存它们,因此user.preferences是一个应用程序变量

HTML

在app.js上

    vm.preferences = localStorage.preferences === undefined ?  initialPreferences : JSON.parse(localStorage.preferences) ;

    $scope.$watch('App.preferences',function() {

        localStorage.preferences = JSON.stringify(vm.preferences);

    });

子控制器可以更改变量,但观察者不会触发。有线索吗?提前感谢

谷歌搜索了一下,如果您不想查看整个对象,则必须指定
$watch
的第三个参数:objectEquality

来自AngularJS文档:

使用angular.equals比较对象相等,而不是比较引用相等

查看整个对象:

$scope.$watch('App.preferences',function() {

    localStorage.preferences = JSON.stringify(vm.preferences);

},true);
$scope.$watch('App.preferences',function() {

    localStorage.preferences = JSON.stringify(vm.preferences);

},true);