Angularjs 如何查看子控制器更改的父控制器变量
每次更改user.preferences时,我都会尝试保存它们,因此user.preferences是一个应用程序变量 HTML 在app.js上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() {
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);