使用此关键字的Angular $ on函数

时间:2015-10-16 23:11:20

标签: javascript angularjs

(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'方法,如上所述

1 个答案:

答案 0 :(得分:2)

在您的情况下,'this'指的是控制器而不是$ scope。对于'this'来引用$ scope,你需要在$ scope方法中。你需要使用:

template<class TreeType>
void someFunc(TreeType& treeContext, typename TreeType::node& n) {
    //do something by calling Tree functions
    //E.g. call Empty(), call AddSon(...)
}

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