2017-01-31 15 views
1

im webpack 2.2.0を使用しています。私appmodule負荷が適切ともルート上のチャンクがダウンロードされますが、それは、テンプレートのパースエラーがスローされます角2 webpack 2遅延ロードモジュールがテンプレート解析エラーを投げる

イムcommonmoduleをロードしようとしている場合

「それは知らプロパティではありませんので、 『ngIf』にバインドできません」動的モジュールでは

動的経路(APP-ルーティング)重複エラーをスロー:

{ 
    path: "reports/:id", 
    loadChildren:() => { 
     return System.import('./reports/tabularReportsFachade/tabularReportsFachade.module').then((comp: any) => { 
      debugger 
      return comp.TabularReportsFachadeModule; 
     }); 
    } 

子ルート:

const routes: Routes = [ 
{ 
    path: "", 
    component: TabularReportsFachadeComponent,pathMatch: 'full' 
} 
]; 
export const routing: ModuleWithProviders = RouterModule.forChild(routes); 

子モジュール:

@NgModule({ 
imports: [ routing, FormsModule], 
exports: [MyComponents], 
declarations: [MyComponents], 
bootstrap: [TabularReportsFachadeComponent], 

}) 
export class TabularReportsFachadeModule { 

static routing = routing; 
} 

webpack.config

var path = require('path'); 

module.exports = { 
entry: { 
    'polyfills': './Scripts/polyfills', 
    "vendor": "./Scripts/vendor", 
    "main": "./Scripts/main" 
}, 
output: { 
    filename: "./Scripts/[name].bundle.js", 
    path: __dirname, 
    publicPath: '/' 
}, 
resolve: { 
    extensions: [".ts", ".js", ".html"] 
}, 
devtool: 'sourcemap', 
module: { 
    loaders: [ 
     { 
      test: /.ts$/, 
      loader: 'babel-loader!ts-loader' 
     }, 
     { 
      test: /.css$/, 
      loader: 'style-loader!css-loader!sass-loader' 
     } 
    ] 
} 

}。

答えて

1

あなたもBrowserModuleを追加する必要があります。

ルートモジュールにはBrowserModuleを、共通ディレクティブを使用する他のモジュールにはCommonModuleをインポートします。

@NgModule({ 
    imports: [BrowserModule], 
    ... 
}) 
class AppModule {} 

@NgModule({ 
    imports: [CommonModule], 
    // Now MyComponent has access to ngIf 
    declarations: [MyComponent] 
    ... 
}) 
class OtherModule {} 

BrowserModule輸出のCommonModuleは、この方法は、それは、ルートモジュールに直接CommonModuleをインポートする必要はありません。

+0

ありがとう。完璧に動作します! – janIreal23

+0

Cool。この回答も受け入れることができます。 –

1

ンモジュールは、いくつかの共通のディレクティブを使用するCommonModuleを追加します。

@NgModule({ 
    imports: [ routing, FormsModule, CommonModule ], 
    exports: [MyComponents], 
    declarations: [MyComponents], 
    bootstrap: [TabularReportsFachadeComponent], 

}) 
export class TabularReportsFachadeModule { 

    static routing = routing; 
} 
+0

私は既に私のappmodul内にcommonModuleをインポートしていますので、ここで再度インポートすると、重複モジュールエラーが発生します – janIreal23

+0

私はそう思わないでしょう、あなたは既にAppModuleのBrowserModuleをインポートしています。 BrowserModuleにはCommonModuleが含まれています。すでにBrowserModuleを持っている場合は、CommonModuleを削除してください。しかし、他のモジュールでは、ngIf、NgForなどのディレクティブを使用する場合は、CommonModuleまたはBrowserModuleをインポートする必要があります。 –

関連する問題