2013-05-24 2 views
2

Mon application a 2 objectifs:AngularJS d'application dynamique avec ou sans routage

  • Il doit exécuter de manière autonome, où il a besoin de routage pour le choix d'une étude etc.
  • Ou, il fonctionne intégré dans un autre projet, et seulement besoin un contrôleur et une vue.

Actuellement, j'ai un routeProvider configuré pour l'application autonome, en injectant les pages dans la balise ng-view dans le code HTML.

Maintenant, est ma question: Comment puis-je injecter un contrôleur et afficher dans la vue ng (Pour l'intégration). Je ne peux pas manipuler le HTML puisqu'il est statique. Je ne peux pas utiliser une seule règle routeProvider, car cela peut interférer avec l'application qui intègre le mien (d'autres plugins peuvent utiliser le #/.. pour des informations ou d'autres choses).

+0

juste ne pas utiliser '.otherwise'? – Ven

Répondre

2

Dans votre situation, vous ne pouvez pas utiliser routeProvider lorsque d'autres éléments interfèrent. Bien sûr, vous pouvez empêcher routeProvider d'agir sur les changements extérieurs du hashbang avec des solutions de contournement, mais ce n'est pas agréable. routeProvider écoutera tous les changements de l'URL après le hashbang. Donc, ce que vous devriez faire est de bootstrap manuellement() votre application angulaire avec les contrôleurs dont vous avez besoin. Si votre application est assez petite, vous pouvez même utiliser des directives pour effectuer un chargement paresseux de modèles avec l'attribut templateUrl: "/ myurl"

Habituellement, pour créer une application dynamique, utilisez le routage. Simnple point. La meilleure façon d'utiliser Angular si vous voulez libérer tout son pouvoir ne l'intègre pas. J'explique pourquoi: + Votre état ne se perd jamais à cause des recharges de pages + Vous avez le plein contrôle de l'environnement et n'avez pas à vous soucier des scripts interférants, etc. + Si votre utilisateur doit recharger manuellement, vous pouvez rediriger vers Accueil/Connexion ou encore mieux requireJS d'utilisation ou stockage local HTML5 pour récupérer vos champs après une recharge

Cheers, Heinrich

Questions connexes