2016-10-29 9 views
1

私はAngularJSとocLazyLoadプラグインを使っています。そして私は私の問題の解決策を見つけることができません。ocLazyLoadプラグインでコンポーネントやその他の依存関係を読み込む

私は(別のファイルcomponentCtrl.jsに)このコンポーネントの1つの(component.jsと命名)成分とコントローラを作成しているし、私は、私は(それが分離されたファイルconstants.jsにすぎだ)コントローラで使用する定数を、持っています。そして、私はこれらのファイルを読み込む必要があります。私がこのようなものを使用するとき:

loadPlugin: function ($ocLazyLoad) { 
        return $ocLazyLoad.load(
         { 
          files: ['../componentCtrl.js','../constants.js',../,'component.js'] 
         },... 

私の依存関係はうまく読み込まれます。しかし、私はより多くのビューでこのコンポーネントが必要です。次に、このコードを何度も書き直さなければなりません。遅延ロード機能を使用する前に、このリソースの配列を定義できますか?私はモジュールを持っている場合

は、これは単純な

$ocLazyLoadProvider.config({ 
    modules: [{ 
    name: 'TestModule', 
    files: ['source1', 'source2',..., 'sourceN'] 
    }] 
}); 

だが、私はこのcomponent.Itの可能性、このプラグインを持つための特別なモジュールを持っていませんか?

答えて

1

あなたは、いくつかの定数またはグローバル変数を定義し、次のようにそこにあなたのすべてのコンポーネントファイルを追加することができます。今すぐ簡単にそれらを使用

function getMeFoo(src) { 
    return ['$ocLazyLoad', 'SIMPLE_COMPONENTS', function ($ocLazyLoad, SIMPLE_COMPONENTS) { 
     if (SIMPLE_COMPONENTS[src]) { 
      return $ocLazyLoad.load(SIMPLE_COMPONENTS[src]); 
     } 
    }] 
} 

angular.module('app') 
     .constant('SIMPLE_COMPONENTS', { 
      comp1: ['../componentCtrl.js', '../constants.js', 'component.js'], 
      comp2: ['../componentCtrl2.js', '../constants2.js', 'component2.js'], 
      compfoo: ['../componentfoo.js', '../constantsbar.js', 'componentfoo.js'] 
     }); 

はその後のようなあなたの状態構成内の関数を定義しますあなたの州の設定で:

.state('app.foo', { 
    url: '/foo', 
    templateUrl: 'views/foo.html', 
    resolve: { 
     dep1: getMeFoo('comp1') 
    } 
}) 

.state('app.bar', { 
    url: '/bar', 
    templateUrl: 'views/bar.html', 
    resolve: { 
     dep1: getMeFoo('comp1'), 
     dep2: getMeFoo('comp2') 
    } 
}); 
関連する問題