角度中的事件不与vm绑定

时间:2015-06-04 10:39:35

标签: angularjs

我对角度很新,似乎无法解决这个问题。

在我的控制器中,我使用var vm = this语法而不是使用$scope,但在尝试附加$on事件处理程序时,我得到vm.$on不是函数错误

这有效:

$scope.$on('$viewContentLoaded', function () {
     console.log(vm.myform);
});

这不是:

var vm = this;

vm.$on('$viewContentLoaded', function () {
     console.log(vm.myform);
});

有些人可以解释一下原因。

由于 詹姆斯

1 个答案:

答案 0 :(得分:1)

$ on是一个$ rootscope的方法,你无法访问其他地方。在角度js中,事件通信通过$ rootscope.broadcast和$ rootscope.emit进行,订阅该事件只有我们可以使用$ rootscope。$ on .To了解更多细节,你可以阅读

http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/