Maison interface Web js tutoriel Solution AngularJs pour charger dynamiquement le contrôleur en fonction de la page visitée_AngularJS

Solution AngularJs pour charger dynamiquement le contrôleur en fonction de la page visitée_AngularJS

May 16, 2016 pm 04:15 PM
angularjs controller

Le but de l'utilisation de Ng est de créer une application d'une seule page (application simple page). J'espère que toutes les pages du site utiliseront la Route de Ng et essaieront de ne pas utiliser location.href. Cependant, cela présente de nombreux avantages. une webapp, mais le seul inconvénient est qu'au fil du temps, les webapps ont plus d'utilisateurs, des fonctions plus riches et plus de contrôleurs. Vous devez charger tous les contrôleurs en tant que modules globaux pour pouvoir appuyer sur n'importe quelle page du site. en rafraîchissant avec F5, vous pouvez accéder à n'importe quelle autre page sans l'erreur de ne pas trouver le contrôleur. Le chargement de tous les contrôleurs ralentit la première ouverture de la page sur le téléphone mobile. Aujourd'hui, je vais partager avec vous comment je l'ai amélioré pour le résoudre. cette lacune, implémentez le chargement modulaire du Controller

app.js

Copier le code Le code est le suivant :

app.config(function($controllerProvider, $compileProvider, $filterProvider, $provide) {
app.register = {
Contrôleur : $controllerProvider.register,
directive : $compileProvider.directive,
Filtre : $filterProvider.register,
Usine : $provide.factory,
Service : $provide.service
};
});

Bloquez pendant le parcours pour charger les js requis, puis continuez une fois le chargement réussi. Si vous ne savez pas ce qu'est $script, veuillez cliquer sur http://dustindiaz.com/scriptjs<.>

Copier le code Le code est le suivant :
$routeProvider.when('/:plugin', {
templateUrl : fonction (rd) {
Renvoie 'plugin/' rd.plugin '/index.html';
},
résoudre : {
Charger : fonction ($q, $route, $rootScope) {
var différé = $q.defer();
var dépendances = [
          'plugin/' $route.current.params.plugin '/controller.js'
];
$script(dépendances, fonction() {
$rootScope.$apply(function() {
           deferred.resolve();
        });
});
Retour différé.promise;
>
>
});

controller.js

Copier le code Le code est le suivant :
app.register.controller('MyPluginCtrl', fonction ($scope) {
...
});

index.html

Copier le code Le code est le suivant :

...


De cette façon, les js dont dépend la route peuvent être chargés dynamiquement pendant la route. Cependant, il y a généralement de nombreuses routes dans notre webapp, et chacune nécessite beaucoup de code pour être écrite, ce qui est moche et difficile. à maintenir. Autant en ajouter un autre Optimiser

app.js

Copier le code Le code est le suivant :

app.config(function($controllerProvider, $compileProvider, $filterProvider, $provide) {
  app.register = {
    contrôleur : $controllerProvider.register,
    directive : $compileProvider.directive,
    filtre : $filterProvider.register,
    usine : $provide.factory,
    service : $provide.service
  };
  app.asyncjs = fonction (js) {
        return ["$q", "$route", "$rootScope", fonction ($q, $route, $rootScope) {
            var différé = $q.defer();
            var dépendances = js;
            if (Array.isArray(dépendances)) {
                pour (var i = 0; i < dependencies.length; i ) {
                    dépendances[i] = "?v=" v;
                >
            } autre {
                dépendances = "?v=" v;//v是版本号
            >
            $script(dépendances, fonction() {
                $rootScope.$apply(function () {
                    différé.resolve();
                });
            });
            retourner différé.promise;
        }];
    >
});

复制代码 代码如下 :

$routeProvider.when('/:plugin', {
  templateUrl : fonction (rd) {
    return 'plugin/' rd.plugin '/index.html';
  },
  résoudre : {
    charger : app.asyncjs('plugin/controller.js')
  >
});

到此只要把原来一个controller.js按模块拆分成多个js然后为route添加模块依赖便可提高加载速度,这Il s'agit d'un contrôleur de type js.模块,例如jquery.ui.datepicker.js这样的日期选择插件,在需要日期选择插件的route节点加上

复制代码 代码如下 :

$routeProvider.when('/:plugin', {
  templateUrl : fonction (rd) {
    return 'plugin/' rd.plugin '/index.html';
  },
  résoudre : {
    chargement : app.asyncjs(['plugin/controller.js','plugin/jquery.ui.datepicker.js'])
  >
});

便可以了

PS : $script可以对需要加载的js进行判断,如果之前已经加载过了他会直接返回成功,也就是说只有Il y a des liens vers jquery.ui.datepicker. js退出去再进就不会去请求啦

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème selon lequel SpringBoot ne peut pas analyser le contrôleur Comment résoudre le problème selon lequel SpringBoot ne peut pas analyser le contrôleur May 14, 2023 am 08:10 AM

Lorsqu'un novice SpringBoot crée un projet, le contrôleur ne peut pas être analysé et une série de problèmes sont 1.2.3.4.5.6. Une autre façon consiste à ajouter @ComponentScan(basePackages={"xxx.xxx.xx","xxx.xxx" lorsque. démarrage de la classe de service) .xx”}) est le nom complet du package, qui peut être utilisé pour plusieurs contrôleurs personnalisés SpringBoot. La route du contrôleur personnalisé SpringBoot ne peut pas être analysée et introuvable car la classe de démarrage et le package de contrôleur personnalisé. ne sont pas dans le même répertoire. Emplacement officiellement recommandé de application.java

Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot May 12, 2023 pm 06:37 PM

Préface Dans certains cas, les préfixes du contrôleur de service sont cohérents. Par exemple, le préfixe de toutes les URL est /context-path/api/v1 et un préfixe unifié doit être ajouté à certaines URL. La solution envisageable consiste à modifier le chemin contextuel du service et à ajouter api/v1 au chemin contextuel. La modification du préfixe global peut résoudre le problème ci-dessus, mais il existe des inconvénients si l'URL a plusieurs préfixes, par exemple certains. Les URL nécessitent des préfixes. S'il s'agit de api/v2, il ne peut pas être distingué. Si vous ne souhaitez pas ajouter api/v1 à certaines ressources statiques du service, il ne peut pas être distingué. Ce qui suit utilise des annotations personnalisées pour ajouter uniformément certains préfixes d'URL. un,

Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Jun 15, 2017 pm 05:50 PM

Javascript est un langage tout à fait unique. Il est unique en termes d'organisation du code, de paradigme de programmation du code et de théorie orientée objet. La question de savoir si Javascript est un langage orienté objet a été débattue depuis un certain temps. Il y a évidemment une réponse depuis longtemps. Cependant, même si Javascript est dominant depuis vingt ans, si vous souhaitez comprendre les frameworks populaires tels que jQuery, Angularjs et même React, il suffit de regarder le « Black Horse Cloud Classroom JavaScript Advanced Framework ». Tutoriel vidéo de conception".

Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Jun 27, 2023 pm 07:37 PM

À l’ère de l’information d’aujourd’hui, les sites Web sont devenus un outil important permettant aux individus d’obtenir des informations et de communiquer. Un site Web réactif peut s’adapter à divers appareils et offrir aux utilisateurs une expérience de haute qualité, ce qui est devenu un point chaud dans le développement de sites Web modernes. Cet article expliquera comment utiliser PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité. Introduction à PHP PHP est un langage de programmation open source côté serveur idéal pour le développement Web. PHP présente de nombreux avantages, tels que la facilité d'apprentissage, la multiplateforme, la riche bibliothèque d'outils et l'efficacité du développement.

Créer des applications Web en utilisant PHP et AngularJS Créer des applications Web en utilisant PHP et AngularJS May 27, 2023 pm 08:10 PM

Avec le développement continu d'Internet, les applications Web sont devenues un élément important de la construction de l'information d'entreprise et un moyen nécessaire au travail de modernisation. Afin de faciliter le développement, la maintenance et l'extension des applications Web, les développeurs doivent choisir un cadre technique et un langage de programmation adaptés à leurs besoins de développement. PHP et AngularJS sont deux technologies de développement Web très populaires. Ce sont respectivement des solutions côté serveur et côté client. Leur utilisation combinée peut considérablement améliorer l'efficacité du développement et l'expérience utilisateur des applications Web. Avantages de PHPPHP

Solution à l'erreur fatale PHP : classe « Contrôleur » introuvable Solution à l'erreur fatale PHP : classe « Contrôleur » introuvable Jun 22, 2023 pm 03:13 PM

Lorsque vous utilisez le framework PHP, vous rencontrez souvent des erreurs telles que "PHPFatalerror: Class'Controller'notfound". Ce genre d'erreur est généralement liée à la dénomination, à l'emplacement ou au chargement des fichiers dans le framework, notamment lorsque vous essayez d'utiliser des contrôleurs. Cet article présentera plusieurs méthodes de traitement courantes pour résoudre ce problème. Confirmer l'emplacement du fichier Tout d'abord, vous devez confirmer que le fichier du contrôleur se trouve dans le répertoire approprié pour le framework. Par exemple, si vous utilisez le framework Laravel

Créez une application Web d'une seule page à l'aide de Flask et AngularJS Créez une application Web d'une seule page à l'aide de Flask et AngularJS Jun 17, 2023 am 08:49 AM

Avec le développement rapide de la technologie Web, l'application Web à page unique (SinglePage Application, SPA) est devenue un modèle d'application Web de plus en plus populaire. Par rapport aux applications Web multipages traditionnelles, le plus grand avantage de SPA est que l'expérience utilisateur est plus fluide et que la pression de calcul sur le serveur est également considérablement réduite. Dans cet article, nous expliquerons comment créer un SPA simple à l'aide de Flask et AngularJS. Flask est un Py léger

Comment utiliser AngularJS en programmation PHP ? Comment utiliser AngularJS en programmation PHP ? Jun 12, 2023 am 09:40 AM

Avec la popularité des applications Web, le framework front-end AngularJS est devenu de plus en plus populaire. AngularJS est un framework JavaScript développé par Google qui vous aide à créer des applications Web dotées de fonctionnalités d'application Web dynamiques. En revanche, pour la programmation backend, PHP est un langage de programmation très populaire. Si vous utilisez PHP pour la programmation côté serveur, utiliser PHP avec AngularJS apportera des effets plus dynamiques à votre site Web.

See all articles