(function(){

    var eateryControllers=angular.module('eateryControllers',[]);

    eateryControllers.controller('MainController',function($scope){
        var mainCtrl=this;
        mainCtrl.$on('$viewContentLoaded',function(){
            console.log("view loaded");
        })
    });

})();


这导致了一个错误:mainCtrl。$ on不是一个函数。较早的版本通过注入$ scope做到了这一点。不能像上面的方法那样使用'this'关键字和'Controller as'方法

最佳答案

在您的情况下,“ this”是指控制器,而不是$ scope。为了使“ this”引用$ scope,您需要处于$ scope方法内。您需要使用:

$scope.$on(...)


另请参阅:'this' vs $scope in AngularJS controllers

关于javascript - Angular $ on函数与此关键字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33180870/

10-16 20:06