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