ajm*_*jma 2 javascript angularjs
我正在尝试观察一个范围,以便每次都可以重新运行一个函数,但它似乎并没有像我想象的那样工作。
所以我只有
$scope.user = userFactory.getUser();
Run Code Online (Sandbox Code Playgroud)
我的用户被从工厂拉进来
然后稍后在单击功能中,我通过让用户单击按钮将其更改为其他内容,如下所示
$scope.swapUserTest = function(){
$scope.user = {'name' : 'new'}
}
Run Code Online (Sandbox Code Playgroud)
然后我试图只是观察它是否发生变化 - 这不仅仅是点击,将来它将来自多个不同的事物,所以我想监视它,以便每当它改变时我的函数就会触发。像这样的东西:
$scope.$watch($scope.user, function() {
console.log("changed")
});
Run Code Online (Sandbox Code Playgroud)
所以我假设,每当 $scope.user 更改时,它都会触发,但它似乎只有在它第一次从工厂进入控制器时才会触发。可以在这里使用一些指导。谢谢你!
您可以指定对象的属性:
$scope.$watch('user', function(newValue, oldValue) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
或者您可以指定一个返回您正在观察的值的函数:
$scope.$watch(function () {
return $scope.user;
}, function(newValue, oldValue) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |