3

我有一个非常简单的AngularJS问题似乎我无法找到答案:

我怎么会去的指令控制器,而使用$scope.$watch()。还使用controllerAsbindToController选项?

如果您需要澄清我的意思,请告诉我。

回答

9

好,$scope.$watch手表expressions所以假设你的控制器绑定到名称vm(如controllerAs: 'vm'),你应该使用

$scope.$watch('vm.somethingToWatch', function(newval, oldval) {...}) 

您将需要仍然注入$scope不过,因为$watch不它们自己可用于控制器实例。

+0

要正确注入'$ scope',我需要使用'$ injector',还是只将它包含在我的控制器中? (即''controller:function($ scope){') –

+0

如果存在'$ scope。$ watch'函数_inside_控制器本身,我会使用'controllerAs'名称(例如'vm')变量? 即 '无功自我=这一点;'' = self.total someCode;'' $范围$腕表( 'self.total',函数()' 与 '$范围$腕表('VM。 .total',function()' –

+0

是的,你可以简单地在'function($ scope)'中注入控制器函数。对于后一个问题,是的,表达式被评估为它会在模板内部发生,所以'vm.total' :) – ArtoAle