2014-04-07 47 views
0

我得到這個錯誤在AngularJS:AngularJS類型錯誤:無法調用「應用」的不確定

TypeError: Cannot call method 'apply' of undefined 
    at Object.$get.e.$emit (http://localhost/TestPortal/js/lib/angular.min.js:87:296) 
    at j (http://localhost/TestPortal/js/lib/angular.min.js:146:351) 
    at http://localhost/TestPortal/js/lib/angular.min.js:88:100 
    at Array.forEach (native) 
    at m (http://localhost/TestPortal/js/lib/angular.min.js:6:193) 
    at Object.$get.e.$broadcast (http://localhost/TestPortal/js/lib/angular.min.js:88:63) 
    at http://localhost/TestPortal/js/lib/angular.min.js:80:114 
    at k.promise.then.i (http://localhost/TestPortal/js/lib/angular.min.js:76:119) 
    at k.promise.then.i (http://localhost/TestPortal/js/lib/angular.min.js:76:119) 
    at http://localhost/TestPortal/js/lib/angular.min.js:76:352 

當調用在我的控制器這行代碼:

function ClientController($scope, $routeParams, $location, StaticData, Client, IndustryFactory) { 
    $scope.$on('$viewContentLoaded', someMethod); 
} 

嘗試下面也沒有按同樣的錯誤:

ClientController.$inject = ['$scope', '$routeParams', '$location', 'StaticData', 'Client', 'IndustryFactory']; 

回答

1

你需要明確地在你的控制器中包含$scope這樣使其工作。

function ClientController($scope, $routeParams, $location, StaticData, Client, IndustryFactory) { 
    $scope.$on('$viewContentLoaded', someMethod); 
} 


ClientController.$inject = ['$scope', '$routeParams', '$location']; 
+0

嘗試這樣做:ClientController $注入= [ '$範圍', '$ routeParams', '$位置', 'StaticData', '客戶', 'IndustryFactory'];。還是一樣的錯誤。 – c0D3l0g1c

0

這我相信是你的代碼縮小問題。注入@jayaram描述的依賴項,或者使用[]表示符號和使用模塊。請參閱部分Notes on Minificationhere

1

想通了。見修改後的代碼:

$scope.$on('$viewContentLoaded', function() { someMethod() }); 
相關問題