2015-09-17 5 views
1

Я пытаюсь иметь базовый маршрут и ленивую нагрузку отдельных модулей с угловой решимостью с system.load.I Am использование JSPM с модулем загрузчиком ES6Ленивого нагрузка угловой модуль с ES6 и systemjs.import

Базового маршрутом config выглядит примерно так:

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; 

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

импорт «угловой»; импорт «угловой-ui-router»;

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; 

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

enter image description here

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

ответ

0

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

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

внутри load()resolve