Ui-sref ne générant pas de liens cliquables/ne fonctionne pas
J'ai utilisé ng de l'itinéraire pour cela avant et il a bien fonctionné, mais avec l'INTERFACE utilisateur du Routeur, les liens ne sont pas cliquables plus, ou tout au moins la plupart du temps, ils ne le sont pas. Lorsqu'ils le sont, ce qui est très aléatoire, ils n'affichent pas les templates html que j'utilise.
HTML:
<head>
<title>Tutorial</title>
<script src="lib/angular/angular.js"></script>
<script src="lib/angular/angular-ui-router.min.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body>
<ng-view></ng-view>
<ul class="menu">
<li><a ui-sref="view1">view1</a></li>
<li><a ui-sref="view2">view2</a></li>
</ul>
.js
angular.module('myApp', [
'myApp.controllers',
'ui.router'
]);
angular.module('myApp').config(function($stateProvider, $urlRouterProvider) {
$stateProvider.state('view1',{
url: '/view1',
controller:'Controller1',
templateUrl:'/view1.html'
}).state('view2', {
url: '/view2/:firstname/:lastname',
controller: 'Controller2',
resolve: {
names: function() {
return ['Misko', 'Vojta', 'Brad'];
}
},
templateUrl: '/view2.html'
});
$urlRouterProvider.otherwise('/view1');
});
angular.module('myApp.controllers', []).controller('Controller1', function($scope, $location, $state) {
$scope.loadView2=function() {
$state.go('view2', {
firstname: $scope.firstname,
lastname: $scope.lastname
});
};
}).controller('Controller2', function($scope, $stateParams, names) {
$scope.firstname = $stateParams.firstname;
$scope.lastname = $stateParams.lastname;
$scope.names = names;
});
Je suis en suivant les instructions dans le SitePoint ebook sur AngularJS, donc je ne suis pas vraiment sûr de ce que je fais mal ou que j'ai raté.
http://plnkr.co/edit/amh3nZmyB7lC2IQi3DIn
Je ne vois pas
Dois-je utiliser à la place de ng-view ou en liaison avec elle?
Un seul
Génial, merci! Fonctionne très bien maintenant.
Regardez à travers
ui-view
n'importe où dans votre balisage, votre les vues des états sont les plus susceptibles de ne pas être rendus et injectéDois-je utiliser à la place de ng-view ou en liaison avec elle?
Un seul
ui-view
doit exister dans votre fichier HTML principal. Votre haut niveau des états seront rendus et injecté. Vous ne devriez pas avoir besoin ng-view
. Les états peuvent avoir des sous-états, et chaque modèle d'un état qui a un sous-état devrait avoir un ui-view
où son rendu des sous-états seront injectés.Génial, merci! Fonctionne très bien maintenant.
Regardez à travers
ui-router
'readme pour les bases de la faire fonctionner: github.com/angular-ui/ui-router/blob/master/README.md . Aussi, ils ont une bonne démo app, vous pouvez télécharger et de regarder à travers ce qui m'a vraiment aidé à comprendre ce qu'est cet état de routage est sur et la façon de l'utiliser.OriginalL'auteur Yasmina Lembachar | 2014-12-21
Vous devez vous connecter pour publier un commentaire.
Je ne vois pas
ui-view
n'importe où dans votre balisage, votre les vues des états sont les plus susceptibles de ne pas être rendus et injecté.Vous ne devriez pas avoir besoin
ng-view
. Un seului-view
doit exister dans votre fichier HTML principal. Votre haut niveau des états seront rendus et injecté. Les états peuvent avoir des sous-états, et chaque modèle d'un état qui a un sous-état devrait avoir unui-view
de sa propre où son rendu des sous-états seront injectés.Regarder à travers
ui-router
'readme pour les bases de la faire fonctionner. Aussi, ils ont une bonne demo app, la source de ce qui m'a vraiment aidé à comprendre ce qu'est cet état de routage est sur et la façon de l'utiliser.OriginalL'auteur JAAulde
Infos utiles, je l'espère...
Bien que les réponses ci-dessus sont correctes (il manque
ui-view
, référencementui.router
, etc.), J'ai couru dans les situations où d'autres problèmes avec la charge de vue va entraîner des liens pour ne pas être généré. Par exemple, ce matin j'ai oublié de référence le moduleangular-cache
et était en cours d'exécution sur un problème avecCacheFactory
pas de chargement (sans aucun rapport avecui.router
). Jusqu'à ce que les références ont été résolus,ui.router
était mort dans l'eau.OriginalL'auteur Fred Lackey