Привет. Я пытаюсь загрузить компонент при навигации по маршруту.Причина в том, что html-страница компонента составляет более 1 МБ.Если я загружаюсь при загрузке, это замедляет пользовательский интерфейс, я хочу загружать этот компонент только после того, как пользователь нажмет на конкретный маршрут
. Любой пример поможет.Вы можете проверить код ниже, я пытаюсь.Сообщите мне исправление.
aboutus-component.js
import AboutUsCtrl from './aboutus-controller'
export const AboutUsComponent = {
controllerAs : 'vm',
controller:AboutUsCtrl,
templateUrl: './aboutus.html'
}
aboutus-module.js
import angular from 'angular'
import {AboutUsComponent} from './aboutus-component.js'
(function(){
angular.module('analyzerApp')
.component('aboutus',AboutUsComponent)
.name
})();
Теперь нажмите на вкладку aboutus
import(/* webpackChunkName: 'aboutus' */'../app/aboutus-main.js').then(() => {
setTimeout(()=>{
$state.go('aboutus', { reload: false });
},2000)
//window.location.href="#/aboutus"
})
aboutus-main.js
importModules(
require.context('./', true, /^(.*(aboutus)\.js)((?!.*\.(js\.*))$)/i)
);
/**
* Dynamically imports modules
* @param request
*/
function importModules(request){
request.keys().forEach(request);
}
Получение этой ошибки
angular-ui-router.js:3251 Uncaught Error: Could not resolve 'aboutus' from state 'home'
at Object.transitionTo (angular-ui-router.js:3251)
at Object.$state.transitionTo (ct-ui-router-extras.js:201)
at Object.$state.transitionTo (ct-ui-router-extras.js:1599)
at Object.$state.transitionTo (ct-ui-router-extras.js:1084)
at Object.go (angular-ui-router.js:3179)
at ni-footer.js:38