2013-03-27 2 views
4

J'essaie d'avoir deux applications angulaires à une page.nid de ng-view dans angularjs

mon scénario: j'ai un site web qui a beaucoup d'applications. Ainsi, par exemple, l'en-tête, le pied de page, la barre latérale gauche, la barre latérale droite ne changeront pas pour toute la page Web, seul le contenu changera. J'ai donc utilisé un modèle angulaire (ng-view). tout en cliquant sur l'application comme calendrier, il sera chargé dans la vue ng. dans l'application de calendrier j'ai un ng vue pour différentes vues (mois, semaine, jour) il en sera ainsi comme

<ng-view> 
    calendar or some other app 
    <ng-view> 
     month or week or day or SOMEOTHER APP TEMPLATE 
    </ng-view> 
</ng-view> 

quand j'ai essayé ce que le navigateur est écrasé. Y'a-t-il une quelconque façon de réussir cela?

+1

Vous ne pouvez pas utiliser ng-include pour faire l'imbrication? – smk

+0

@smk ng-include est différent, il va simplement inclure le contenu d'un fichier, pourquoi devrais-je obtenir les données du serveur lorsque l'utilisateur ne demande pas ce contenu? –

+0

Comme @smk l'a souligné, vous pouvez obtenir la même chose en utilisant ng-include car il ne peut y avoir qu'une seule vue ng par page. Quel est le problème en utilisant ng-include, je n'ai pas eu votre préoccupation. Le chargement des modèles pour ng-view et ng-include est similaire. – Chandermani

Répondre

1

ngView est couplé avec $routeProvider, ce qui signifie qu'il est mis à jour en fonction de la route actuelle/uri. Ce qui signifie également que vous ne pouvez pas lier deux vues différentes à un seul URI. Vous pouvez simplement utiliser ngInclude avec une URL que vous souhaitez afficher. Cela fonctionne comme ngView en termes de récupération à partir du serveur.

Vous ne téléchargerez pas tous les 3 URL à la fois si vous fournissez simplement l'URL, il serait récupéré sur demande. Cependant, dans la plupart des applications, il est préférable de traiter tous les fichiers statiques possibles en même temps, puis de les mettre en mémoire cache, ce qui se traduirait par de meilleures performances globales; seulement la charge initiale souffrirait un peu; ce qui est mieux qu'une application lente en général.

Je préférerais attendre 2 secondes de plus si cela permet à l'ensemble de l'application de répondre plus rapidement.

Questions connexes