Angularjs使用controller as vm方法时$watch的使用
AngularJS 1.2版本中提供了Controller as语法,简单说就是可以在Controller 中使用this来替代$scope,使得Controller 更像一个传统的JS类,相对于$scope的继承树要理解上要简单一些。
我们通常会在控制器中写成var vm = this,来避免this的指向出现问题。
但是由于$watch是绑定在$scope上的方法,所以不能vm.$watch或者this.$watch,而是应该注入$scope,
采用
$scope.$watch("vm.params",function(newVal,oldVal){
console.log(newVal,oldVal);
});
这种写法。