1

我正在使用一项服务来“维护”用户在我的小型 Angular 应用程序中处理的当前对象。我遇到了一个问题,我正在使用的手表没有启动,我不确定为什么。我发现了多个使用函数作为手表表达式的示例,但还没有一个可以工作。我在这里设置了一个带有服务和控制器的简单小提琴:

$scope.$watch('$foo.getCurrent()', function (nn, oo, scope) {
    scope.currentFoo = $foo.getCurrent();
});

JS小提琴

清除按钮假设“重置”当前对象,通过 $watch 应该将表单重置为空状态。有人能拍拍我的后脑勺,告诉我我做错了什么吗?

谢谢!

4

1 回答 1

0

更新了你的小提琴

http://jsfiddle.net/n2Bjp/37/

不要认为您希望在函数中传递范围,该函数被触发并使用函数作为 $watch 调用的第一个参数。

$scope.$watch(function() {return $foo.getCurrent()}, function (nn, oo) {
    $scope.currentFoo = $foo.getCurrent();
}, true);

相信使用仅适用于可以在控制器范围内解析的属性的字符串时。在任何情况下,使用该函数作为返回要检查的东西的第一个参数总是有效的(如果检查的东西改变了它,就不要这样做)。

于 2013-10-20T23:58:08.483 回答