2017-03-20 2 views
0

angular-cliでプロジェクトをビルドしています。バージョン1.0.0-rc.2にアップグレードした後、現在ng buildに問題があります。最新のアングルでビルドするときのプロバイダの問題

ERROR in Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 46:16 in the original .ts file), resolving symbol AppModule in /Users/Rkok/Documents/Projects/capitola-vr-frontend/src/app/app.module.ts 

エラーがapp.module.tsに位置しており、それは、プロバイダAPP_INITIALIZERuseFactoryプロパティに接続されている:私はそうしようとすると、私は次のエラーを取得しています。これは完全なコードです:

@NgModule({ 
    imports: [ 
     // Modules list 
    ], 
    declarations: [ 
     // Declarations list 
    ], 
    providers: [ 
     { provide: 'Window', useValue: Window }, 
     PostsService, 
     UserService, 
     { 
      provide: APP_INITIALIZER, 
      useFactory: (users: UserService) =>() => users.onResize(), // The error is in this line 
      deps: [UserService], 
      multi: true 
     }, 
     { 
      provide: APP_INITIALIZER, 
      useFactory: (posts: PostsService) =>() => posts.loadData(), // And in this other one 
      deps: [PostsService], 
      multi: true 
     } 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule {} 

この問題を解決する最善の方法は何ですか。あなたの返信を前にありがとう!

答えて

1

でも、私たちはこの問題に直面しましたが、通常の "関数"構文を使用して宣言すれば、ES6 "=>"構文を使用する代わりに機能します。それが動作するはずです

function users(users: UserService) { 
    users.onResize() 
} 

function posts(posts: PostsService) { 
    posts.loadData() 
} 

@NgModule({ 
imports: [ 
    // Modules list 
], 
declarations: [ 
    // Declarations list 
], 
providers: [ 
    { provide: 'Window', useValue: Window }, 
    PostsService, 
    UserService, 
    { 
     provide: APP_INITIALIZER, 
     useFactory: users, 
     deps: [UserService], 
     multi: true 
    }, 
    { 
     provide: APP_INITIALIZER, 
     useFactory: posts, 
     deps: [PostsService], 
     multi: true 
    } 
], 
bootstrap: [AppComponent] 
}) 
export class AppModule {} 

更新されたコードは次のようになります。

希望すると便利です。

+0

ありがとうございますが、エラーは引き続き発生します。どうやら私はサービスや変数の中に関数を格納する必要があります。その方法で値を渡してください –

+0

関数名を使用してuseFactory関数を宣言しようとすると、同じファイル内の@NgModuleデコレータを上書きし、 –

+0

グローバル変数を使用するか、定数をエクスポートするのにtrieがありますが、エラーが再びスローされます。どのように宣言しますか? –

関連する問題