2016-04-18 7 views
0

角度ディレクティブをWebpackチャンクとして遅延読み込みしようとしています。遅延読み込みWebpackチャンクとしてのui-routerの角度指令

// Basic Config 
function routingBase($urlRouterProvider, $locationProvider, $stateProvider) { 

    $locationProvider.html5Mode(true); 

    $stateProvider 
     .state('home', { 
      url: '/home', 
      template: '<app-main></app-main>', 
      resolve: { 
       load: ($q, $ocLazyLoad) => { 

        let deferred = $q.defer(); 

        require.ensure([], (require) => { 

         // Load entire module 
         let module = require('../modules/main'); 

         $ocLazyLoad.load({ 
          name: module.name 
         }); 

         deferred.resolve(module); 

        }, 'app-main'); 

        return deferred.promise; 
       } 
      } 
     }) 
} 

これはmyModule.config(routingBase);に行く:

はここocLazyLoadを使用しての私の現在の設定の試みです。

../modules/mainは(ディレクティブをエクスポートするだけで、角のモジュールである例えばexport default angular.module('main',[]).directive('appMain', appMainFn);

任意のヒント?私は何を取得していますと、<app-main></app-main>が正しく文書に追加されていることで、チャンクが正しくモジュールとしてロードされていること。しかし、それはあなたが(多分$compileProviderを使用して)遅延読み込みチャンクのための別の方法を勧めますか?私は可能な限りクリーンな方法をしたいと思います(それが<app-main></app-main>としてまま)に交換。

をではありません。

はあなたに非常に多くのFOをありがとうあなたの助け。

答えて

0

私の現在のプロジェクトでこれを実行することができました。次の行を変更して動作することを確認してください。角度モジュールをデフォルトとしてエクスポートするので、デフォルトのも追加する必要があります。乾杯!

$ocLazyLoad.load({ 
name: module.default.name 
}); 
+0

本当にうわーですか?ありがとう! –

関連する問題