【发布时间】:2016-11-16 11:49:43
【问题描述】:
我试图在作用域被破坏时停止所有事件侦听器。
我收到此错误:
TypeError: vm.$on is not a function;
vm.on(..) 都不起作用
angular.module('app.layout')
.controller('DashboardController', DashboardController);
DashboardController.$inject = ['$interval','dataservice'];
function DashboardController($interval, dataservice) {
var vm = this;
vm.name = "DashboardController";
console.log('Init Dashboard Controller');
initEvents();
/*
...
*/
/////////////////////////////
function initEvents() {
vm.$on('$destroy', function() {
vm.stop();
console.log('DashboardController scope destroyed.');
})
}
【问题讨论】:
-
vm是控制器,而不是范围。在这种情况下,您需要注入$scope服务。 -
我不是 AngularJS 人,但 $on 是 $scope 方法...
标签: javascript angularjs angular-controller angularjs-events