1
嗨我想加載我的任何控制器之前從工廠加載數據。我找到了一種方法來解決這個問題:在控制器之前加載來自服務器的數據
angular.module('agent', ['ngRoute','ui.bootstrap','general_module', 'order_module','customer_module']).config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/customer', {
templateUrl: 'customer_module/partials/customer.php',
resolve:{
'MyServiceData':function(loginvalidation){
// MyServiceData will also be injectable in your controller, if you don't want this you could create a new promise with the $q service
var a=loginvalidation.check_usertype();
}}
}
);
$routeProvider.otherwise({redirectTo: '/customer'});
}]);
但問題是我必須在每一條路徑上都複製這個。有沒有辦法在angularjs中編寫一次代碼以在啓動任何控制器之前加載服務(不重複我的代碼)?
感謝
簡單的方法:只需將您的解析體放入某個方法的某個方法中,然後爲每個路徑設置resolve:myResolve()。請參閱:http://stackoverflow.com/questions/11972026/delaying-angularjs-route-change-until-model-loaded-to-prevent-flicker –