IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

[ui-router] Controller, Error: [$injector:unpr]


Sujet :

AngularJS

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut [ui-router] Controller, Error: [$injector:unpr]
    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 :
    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;
    	});
    });
    Ce qui est étonnant c'est que le lien "newPushs2" fonctionne très bien alors que le lien "allPushs2" n'appelle pas le controller.

    Quelqu'un a-t-il une idée pour m'aider ?

    Merci.
    OS : LinuxMint 20

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Mon problème venait du $http du controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    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;
    	});
    });
    OS : LinuxMint 20

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2007, 13h26
  2. Problèmes user control et événement
    Par gridin dans le forum VB.NET
    Réponses: 3
    Dernier message: 04/05/2007, 14h40
  3. [C#] Problème de controle null.
    Par Michel Hubert dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/12/2006, 22h01
  4. [C#]Encore un problème de controls dynamiques.
    Par bicou13 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 22/08/2006, 09h13
  5. Problème avec control parent de type TDrawGrid
    Par slylafone dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/11/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo