AngularJS UI-Router plusieurs pages
Comme Angulaire est le SPA qui est formidable, mais que si j'ai besoin d'une autre page ne sont pas liées à index.html comment est réalisé par UI-Router etats avec différents ui-vues?
Par exemple, j'ai index.html:
<!DOCTYPE html>
<html data-ng-app="npAdmin">
<head>
...
</head>
<body>
<header>
<data-user-profile class="user-profile"></data-user-profile>
</header>
<section class="content-wrapper">
<aside data-main-menu></aside>
<div class="main-content" data-ui-view></div>
</section>
<footer class="row"></footer>
...
</body>
</html>
app.js:
var app = angular.module('npAdmin', ['ui.router']);
app.config(['$httpProvider', '$stateProvider', '$urlRouterProvider', function($httpProvider, $stateProvider, $urlRouterProvider) {
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: '/app/dashboard/dashboard.html',
controller: 'DashboardCtrl'
})
.state('crm', {
url: '/crm',
templateUrl: '/app/crm/crm.html',
controller: 'CrmCtrl'
})
...
Maintenant j'ai besoin de login.html ce qui est totalement différent de index.html (n'avez pas besoin de l'indice d'en-tête, pied de page, la barre latérale), mais la config stateProvider seulement ressemble à index.html ui-view et des changements de contenu par les états. Comment combiner login.html?
Il ne semble pas que dur, mais je ne l'obtenez pas.
Vous devez vous connecter pour publier un commentaire.
Comme prévu, il n'est pas si difficile, il y a un plunker.
L'astuce est de déplacer la commune de trucs pour tous les points de vue à l'intérieur du modèle spécifique par exemple
common.html
et de créer le résumé de l'état. D'autres termes, laindex.html
restera propre:Et son contenu précédent (contenu de la
index.html
) serait déplacé àcommon.html
. La définition de l'état pourrait ressembler à ceci:Qu'est-ce que intéressant (je dirais) est que nous avons introduit résumé état, sans url. De sorte que le tout logique actuelle restera, juste le résumé va jouer le rôle d'un modèle de mise en page.
Vérifier plus de détails ici: exemple
ui-router
est incroyable et vraiment puissant... en Profiter 😉J'ai aussi eu ce problème avant, reportez-vous à CE si vous êtes intéressé. Dans ce lien, j'ai aussi traité de
returnUrl
et401 http status code
dans le cas où l'utilisateur n'est pas autorisé.Dans votre cas, je vous conseille de la conception de votre application comme ceci:
index.html:
main.html:
login.html
(inclure le code html de ce point de vue)
App.js:
Explication:
Comme angulaire est SPA, votre index.html devrait couvrir tous les points de vue de votre application. Il existe de multiples façons de s'assurer que. Dans cet exemple, le
login
est aussi un état dans votre application qui est séparé de votremain
. En utilisant l'état de l'héritage angulaire routeur, vous pouvez, en outre, avoir des enfants membres de votremain
qui sontdashboard
etcrm
dans ce cas.