Angular - 带有 controllerAs、bindToController 和 $scope.$watch 的指令

Angular - Directive with controllerAs, bindToController, and $scope.$watch

我有一个相当简单的 AngularJS 问题,我似乎找不到答案:

我如何在指令控制器中使用 $scope.$watch() 同时使用 controllerAsbindToController 选项?

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

好吧,$scope.$watch 监视 expressions 所以假设您将控制器绑定到名称 vm(例如 controllerAs: 'vm'),您应该使用

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

尽管如此,您仍然需要注入 $scope,因为 $watch 本身在控制器实例上不可用。