2014-05-10 5 views
1

J'utilise ui-router 0.2.10. Mon application a deux modèles différents, index.html & index2.html. J'ai créé un état abstrait, et je fais référence aux deux index dans leurs états respectifs. Le problème est que je peux bien accéder à la première route, mais quand j'essaie d'accéder à la prochaine route, elle continue de passer par défaut à la première route. Les modèles de résumé vivent dans le même dossier.routage ui-routeur 2 états différents avec différents modèles

Qu'est-ce qui me manque ici?

.config(["$stateProvider", "$urlRouterProvider", function(sp, urp) { 

    urp.otherwise("/index1"); 


    sp.state("index1", { 
     abstract:true, 
     url: "/index1", 
     templateUrl: "index.html" 
    }); 
    sp.state("index1.id", { 
     url: "/id", 
     template: "views/partials/index.partial.html", 
     controller: function($scope,$state){ 
      $state.go('index1.id'); 

     } 
    }); 

    sp.state("index2", { 
     abstract:true, 
     url: "/index2", 
     templateUrl: "index2.html" 
    }); 
    sp.state("index2.id", { 
     url: "/id", 
     template: "views/partials/index2.partial.html", 
     controller: function($scope,$state){ 
      $state.go('index2.id'); 

     } 
    }); 

}]) 
+0

Le code semble utiliser 'template' et' templateUrl' de façon interchangeable; Cependant, 'template' est censé contenir du HTML brut, alors que' templateURL' pointe sur un fichier. –

Répondre

1

Je suppose que vous essayez d'aller à un état abstrait et qui ne fonctionnent pas comme des états abstraits ne seront activés lorsque vous allez à un enfant de cet état abstrait, autrement dit vous pouvez » t directs aller à index1 ou index2, donc ce n'est pas légal:

urp.otherwise("/index1"); il devrait être: urp.otherwise("/index1/id"); à la place.

pourquoi aussi allez-vous aux états au sein de leur propre contrôleur? $state.go('index2.id'); est inutile car au moment où cette ligne de code est reached vous êtes déjà dans l'état index2.id. Je pense que vous vouliez mettre ces lignes de code à l'intérieur des contrôleurs des états abstraits! Last bit not least, n'oubliez pas que vos états abstraits DOIT avoir un ui-view eux-mêmes car ils hébergent des états enfants.

See plunk.

+0

Salut Mohammad, merci d'avoir répondu à ma question, vous êtes un sauveur de vie. Je réalise mon erreur maintenant. J'ai cependant une question, à part que mes états abstraits n'ayant pas une vue d'ensemble était la façon dont j'ai déclaré que chaque état posait problème? comme dans sp.state ...? – Jimi

+0

Pas vraiment, tout semble correct, en dehors de l'appel de $ sate.go pour aller dans le même état que le contrôleur est dans comme je l'ai mentionné dans ma réponse. –

+0

btw, Si ma réponse vous a aidé, vous pouvez l'accepter en cliquant sur la coche à côté d'elle;) –

Questions connexes