2015-10-16 55 views
0
(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'方法做到這一點

回答

2

在你的情況下,'this'是指控制器而不是$ scope。對於'this'來引用$ scope,你需要在$ scope方法中。您需要使用:

$scope.$on(...) 

參見:'this' vs $scope in AngularJS controllers