Ao usar o modo de rotas/vistas no AngularJS para criar um site ou aplicativo grande, carregar todos os arquivos personalizados, como controladores e modelos durante a inicialização, não é uma boa ideia. A melhor maneira é carregar apenas os arquivos necessários ao inicializar. Esses arquivos podem depender de uma conexão ou vários arquivos, no entanto, eles são usados apenas por uma rota específica. Quando alteramos as rotas, os arquivos descarregados serão carregados conforme necessário. Isso não apenas melhora a velocidade de inicializar a página, mas também evita o desperdício de largura de banda.
A maioria dos artigos da Internet fala sobre o carregamento preguiçoso dos controladores através de $ RouteProvider e serviços de terceiros. Por exemplo, o carregando os controladores AngularJS sob demanda explica em detalhes. No entanto, existem poucos artigos sobre o carregamento preguiçoso de controladores, HTML/modelos com $ StateProvider. Embora eu tenha visto muito código -fonte relacionado ao $ StateProvider e resolvido o problema de carregamento preguiçoso do HTML/modelo, ele ainda não resolveu o problema de carregamento preguiçoso do controlador, o que é uma pena. Devido a problemas de tempo, os resultados da investigação serão resolvidos primeiro e a investigação continuará no futuro.
Em relação ao carregamento preguiçoso do modelo HTML/, você precisa colocar o arquivo HTML e o arquivo de página inicial em diferentes diretórios; caso contrário, ele será carregado automaticamente. Da mesma forma, você não pode usar o templateUrl para especificar o arquivo, caso contrário ele será carregado automaticamente. A propriedade de modelo de $ StateProvider.state suporta valores e funções de string, para que uma função possa ser definida para carregar e cache arquivos HTML para evitar o carregamento duplicado de arquivos. Eu queria que o controlador fizesse a mesma coisa, mas infelizmente não consegui encontrar a definição da função do controlador. Eu tentei muitos métodos, mas falhei. Estudarei o código -fonte no futuro para ver o que estava faltando. Vou fazer o upload diretamente do código, a lógica não é complicada, então não vou falar muito.
// Registre o html e o controlador carregados para evitar o carregamento de rede duplicado $ ionic.files = {html: {}, controlador: {}}; // declara o atraso de carregamento html $ ionic.gethtml = função gethtml (name) {se (! para carregar html e cache $ ionic.files.html [nome] = jQuery.ajax ({url: 'views/' + name + ".html", async: false}). Respotexex; = $ .getScript ('Assets/Controller/' + Name + '.js'); jQuery.ajax ({"url": 'Assets/Controller/' Name + '.js', "Datatype": "Script", "Async": False}; // Console.log ("carregar" + "; "/login", controlador: resolveController ("Logincontroller"), modelo: function () {return $ ionic.gethtml ("login");O exposto acima é a descrição completa do ALGULEJS ALAGEM LOLTAÇÃO DO MODELO HTML Introduzido a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!