Javascript angular js集合使用$on而不使用$scope

Javascript angular js集合使用$on而不使用$scope,javascript,angularjs,Javascript,Angularjs,我看到角度控制器有两种方式。 老一辈: app.controller('my_ctrl', ['$scope', function($scope){ $scope.a = null; }]); 还有这个: app.controller('my_ctrl',function(){ this.a = null; }); 现在我尝试在侦听器上使用$on,并在文档中使用$scope。我试着这样使用它: 这是我的 但我有一个错误: this.$on is not a function

我看到角度控制器有两种方式。 老一辈:

app.controller('my_ctrl', ['$scope', function($scope){
  $scope.a = null;
}]);
还有这个:

app.controller('my_ctrl',function(){
      this.a = null;
});
现在我尝试在侦听器上使用$on,并在文档中使用$scope。我试着这样使用它:

这是我的

但我有一个错误:

this.$on is not a function

如何在第二种方式中使用$on?

您使用
$on
的方式是在
$scope
变量本身上使用它,而不是在
这个
指针上使用它

试试这个

$scope.$on('listener',function(){})

以你为例

app.controller('my_ctrl', function($scope) {
  $scope.$on('listener', function() {
    // do stuff on the event
  })
})

再加上ericraio所说的——当您观察变量的变化或其他情况时,只需要$scope。事件监视不能在“this”上完成好的,谢谢,我想如果我们现在使用它,那么使用$scope也是一样的。然后我想我不能使用$scope。@user3699170是的,请记住,如果在一个文件中最小化所有javascript,那么在控制器中使用这种更新的方式可能会导致问题。有一个gulp/grunt插件,可以在缩小过程中将所有文件重新写入旧版本。较新的语法更好。