ui-router 预加载 resolve
a obtenu les données, comment les injecter dans le contrôleur ?
Remarques :
Dans $state
, j'importe le fichier du contrôleur via controllerUrl
.
Ma version de l'interface utilisateur est 0.4.2
.
Code de routage ↓
$stateProvider.state('dashboard', {
url: '/dashboard',
templateUrl: 'views/dashboard/index.html',
resolve: {
getList: function ($stateParams, $NetRequest){
var options = {type: 'charts'};
$NetRequest.post(options).then(function($ref){
return $ref.data;
});
}
},
controllerUrl: 'views/dashboard/index',
controller: 'DashboardController',
controllerAs: 'vm'
});
Code de service ↓
service.post = function($options){
var deferred = $q.defer();
// 省略请求函数...
return deferred.promise;
};
Si vous injectez getList
directement dans le contrôleur à ce moment, le résultat sera undefined
.
J'ai lu la documentation officielle et il y a un paramètre $inject
, mais malheureusement il n'y a pas d'exemple je ne sais pas comment l'utiliser.
Le problème est résolu, la méthode est en fait très simple - -
'//Obtenir des données ici'. . . . Avez-vous rendu votre promesse ?