Ленивая загрузка углового модуля с ES6 и systemjs.import

Я пытаюсь создать базовый маршрут и лениво загружать отдельные модули с угловым разрешением с помощью system.load. Я использую jspm с загрузчиком модулей ES6.

Конфигурация базового маршрута выглядит следующим образом

import "angular";
import "angular-ui-router";

class RouteConfig {

    constructor($stateProvider, $urlRouterProvider){
        this.stateProvider = $stateProvider;
        this.urlRouterProvider = $urlRouterProvider;

        $stateProvider
            .state("index", {
                url: "/",
                templateUrl: "/app/common/templates/home.html",
            })
            .state('order',{
                url:'/order',
                templateUrl:"/app/modules/order/templates/order.html",
                //controller:"order.controller as orderCtrl",
                resolve:{
                    load:()=>{
                        System.import('app/modules/order/order.module');
                        System.import('app/modules/order/order.controller');
                    }
                }
            });

        $urlRouterProvider.otherwise("/");
    };

    static factory($stateProvider, $urlRouterProvider){
        RouteConfig.instance = new RouteConfig($stateProvider,$urlRouterProvider);   
        return RouteConfig.instance;
    };
}

RouteConfig.factory.$inject = ['$stateProvider', '$urlRouterProvider'];

export default RouteConfig;

Теперь я пытаюсь лениво загрузить контроллер на основе необходимого модуля. Таким образом, модуль и контроллер загружаются как

импорт "угловой"; импортировать «угловой интерфейс-маршрутизатор»;

class OrderModule {

    constructor($log,$stateProvider,$urlRouterProvider){
        //$stateProvider
        //    .state('order',{

        //    })

    }

    static factory($log){
        OrderModule.instance = new OrderModule($log,$stateProvider,$urlRouterProvider);
        return OrderModule.instance;
    }
}

angular.module("order.module", ['ui.router']);
OrderModule.factory.$inject = ['$log','$stateProvider','$urlRouterProvider'];
export default  OrderModule;

И контроллер

"use strict";

class OrderController {
    constructor() {
        this.order = "Please place an order";
    }
    static factory() {
        OrderController.instance = new OrderController();
        return OrderController.instance;
    }

}

angular.module('order.module').controller('Order.Controller', OrderController);

export default OrderController;

Теперь, когда я пытаюсь это . Это дает мне ошибку, поскольку

введите здесь описание изображения

Может кто-нибудь сказать, как загрузить этот модуль. Кажется, что файл модуля angular загружается через systemjs, но не регистрирует модуль angular. Любое решение этого?


person Joy    schedule 17.09.2015    source источник


Ответы (1)


Попробуйте использовать:

System.import('app/modules/order/order.module')
    .then(function () {
        System.import('app/modules/order/order.controller');
    });

внутри load() resolve

person Abhijeet Pawar    schedule 17.09.2015