Bonjour,
Je conçoit une page avec la technologie Angular ui-router qui permet de créer des vues imbriquées les unes dans les autres.
J'ai deux liens dans une liste qui doivent chacun inclure une vue html dans un même <div ui-view>. Ces deux liens sont inclus dans une vue qui a été obtenue depuis la navbar. Un de ces deux liens fonctionne à merveille et appelle bien le controller en affichant la vue mais l'autre lien ne fonctionne pas (il affiche bien la vue mais pas les données car il n'appelle pas le controller qui est chargé de les récupérer).Tout ceci alors que j'ai utilisé la même manière de coder. Lorsque le controller n'est pas lu, cela fait remonter une erreur "Error: [$injector:unpr]" dans la console de firefox avec un lien menant vers la page suivante : https://docs.angularjs.org/error/$in...0allPushs2Ctrl.
Voici la liste de liens et le <div ui-view> :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <li> <a ui-sref=".allPushs2" class="collapsed"> <span class="glyphicon glyphicon-flag"></span> All pushes </a> </li> <li> <a ui-sref=".newPushs2" class="collapsed"> <span class="glyphicon glyphicon-flag"></span> New push </a> </li> ........ <div class="col-sm-9 col-md-10 affix-content" ui-view> </div>
Voici le javascript relatifs aux deux liens ainsi que les controllers :
Ce qui est étonnant c'est que le lien "newPushs2" fonctionne très bien alors que le lien "allPushs2" n'appelle pas le controller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 // route for the pushs2 page .state('pushs2', { url : '/pushs2', templateUrl : 'vues/pushs2.html' }) .state('pushs2.allPushs2', { url: '/allPushs2', templateUrl: 'vues/allPushs2.html', controller: 'allPushs2Ctrl' }) .state('pushs2.newPushs2' ,{ url: '/newPushs2', templateUrl: 'vues/newPushs2.html', controller: 'newPushs2Ctrl' }) ...... lnjApp.controller('allPushs2Ctrl', function($scope,http) { console.log("allPushs2Ctrl"); $scope.advicesList = []; $http.get('http://localhost:8080/LuneEtJardin/rest/get_all_advices').then(function(response) { console.log("response : " + response.data.advicesList); $scope.advicesList = response.data.advicesList; }); }); lnjApp.controller('newPushs2Ctrl', function($scope, $http) { console.log("newPushs2Ctrl"); $scope.audiencesList = []; $http.get('http://localhost:8080/LuneEtJardin/rest/get_all_audiences').then(function(response) { console.log("response : " + response.data.audiencesList); $scope.audiencesList = response.data.audiencesList; }); });
Quelqu'un a-t-il une idée pour m'aider ?
Merci.
Partager