javascript - Angular,观察 $scope 变化

标签 javascript angularjs

我正在尝试观察示波器,以便每次都可以重新运行一个函数,但它似乎并没有像我想象的那样工作。

所以我有

 $scope.user = userFactory.getUser();

我的用户被从工厂拉进来

然后在点击功能中,我通过让用户点击按钮将其更改为其他功能

 $scope.swapUserTest = function(){
  $scope.user = {'name' : 'new'}
}

然后我试图只观察它是否发生变化 - 这不只是在点击中,将来它将来自多个不同的事物所以我想要观察它所以每当它发生变化时我的函数都会触发.像这样的东西:

$scope.$watch($scope.user, function() {
  console.log("changed")
});

所以我假设,只要 $scope.user 发生变化,它就会触发,但它似乎只在它第一次从工厂进入 Controller 时触发。可以在这里使用一些指导。谢谢!

最佳答案

您可以指定对象的属性:

$scope.$watch('user', function(newValue, oldValue) {
    // do something
});

或者您可以指定一个返回您正在观察的值的函数:

$scope.$watch(function () {
    return $scope.user;
}, function(newValue, oldValue) {
    // do something
});

关于javascript - Angular,观察 $scope 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205164/

相关文章:

javascript - 如何按降序对 JSON 数组元素进行排序?

javascript - AngularJs 将带有子集合的对象发布到 MVC WebAPI

javascript - Angular js解析Json对象

javascript - 在 AngularJS 中创建 Promise

javascript - Angularjs 最佳实践 - $scope 与 this

javascript - 动态 ng-include 令人头疼

javascript - UniSharp/Laravel Filemanager 和 TinyMCE 集成

javascript - 如何检查是否存在至少一个 li 元素且 attr = some ?

javascript - 重新运行 $(document).ready()

javascript - 重新排序 DOM 元素