J'essaie d'utiliser la fonction de résolution dans mon fournisseur d'état de routeur ui. J'ai configuré comme suit:L'ui-routeur AngularJS ne résout pas l'appel de service
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
...
$stateProvider.state('expositions', {
url: '/Expositions',
views: {
"container": {
templateUrl: '/views/expositions.html',
resolve: {
expositions: function ($http) {
return $http.get('/api/site/expositions').then(
function (response) {
console.log("DATA", response.data);
return response.data;
},
function (error) {
console.log("ERROR", error);
})
}
}
}
}
})
...
}
Dans ce cas, quand je clique sur le lien de la détermination des expositions est pas appelé et la navigation n'a pas lieu: rien ne se passe.
J'ai aussi essayé de le configurer avec une usine (un service de ressources) comme suit:
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
...
$stateProvider.state('expositions', {
url: '/Expositions',
views: {
"container": {
templateUrl: '/views/expositions.html',
resolve: {
expositions: function (Resources) {
console.log("DATA", Resources);
return Resources.expositions();
}
}
}
}
})
...
}
Le service de ressource est définie dans un fichier séparé comme suit:
resourcesService.js
(function() {
'use strict';
angular
.module('site')
.factory('Resources', ['$resource',
function ($resource) {
return $resource('/api/site/:action/:id', {}, {
...
expositions: {
method: 'GET',
params: { action: "expositions" },
isArray: true
//transformResponse: function (data) {
// return angular.fromJson(data).list
//}
},
...
});
}
]);
})();
également dans ce cas, rien ne se passe et la fonction de détermination est pas appelée.
Qu'est-ce qui me manque?
Merci d'avance!