2016-10-01 11 views
1

私は角2のリリースにアップグレードし、ElementRefを使用しようとしています。 Angular2 RC5 error:zone.js: Unhandled Promise rejection: No provider for ElementRefはそう私は私のコードを変更:最初に、ここで指定したように私はエラーAngular2 RC5 error:zone.js: Unhandled Promise rejection: No provider for ElementRefを得た角2リリース "予期しない値 'モジュールによってインポートされた' ElementRef '

import { NgModule, CUSTOM_ELEMENTS_SCHEMA, ElementRef }  from '@angular/core'; 
@NgModule({ 
    declarations: [DashboardComponent, WidgetBankComponent, DataTableDirectives, OrderBy], 
    exports: [DashboardComponent, WidgetBankComponent], 
    imports: [BrowserModule, HttpModule, FormsModule, ChartsModule, ElementRef], 
    providers: [ChartService, GridService, WidgetsControlService, GridViewService, ApplicationSettingsService, DataService, ToolsService, LocalStorageService, RuntimeCompiler, COMPILER_PROVIDERS, NgGrid, NgGridItem], 
    schemas: [CUSTOM_ELEMENTS_SCHEMA] 
}) 

、今私は、エラー(SystemJS) Unexpected value 'ElementRef' imported by the module 'DashboardModule'

任意のアイデアを取得していますか?

ありがとうございます!

EDIT

以下の答えで推奨修正を行なったし、今、このエラーを持っている - ここで完全なエラーがある - 私はこのエラーからプロバイダを供給する必要がある場所伝える方法はありますか?

zone.js:355 Unhandled Promise rejection: No provider for ElementRef! ; Zone: <root> ; Task: Promise.then ; Value: NoProviderError {_nativeError: Error: No provider for ElementRef! 
    at NoProviderError.Error (native) 
    at NoProviderError.Base…, keys: Array[1], injectors: Array[1]}_nativeError: Error: No provider for ElementRef! 
    at NoProviderError.Error (native) 
    at NoProviderError.BaseError [as constructor] (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1248:38) 
    at NoProviderError.AbstractProviderError [as constructor] (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1703:20) 
    at new NoProviderError (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1734:20) 
    at ReflectiveInjector_._throwOrNull (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3331:23) 
    at ReflectiveInjector_._getByKeyDefault (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3359:29) 
    at ReflectiveInjector_._getByKey (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3322:29) 
    at ReflectiveInjector_.get (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3131:25) 
    at NgModuleInjector.AppModuleInjector.createInternal (AppModule.ngfactory.js:310:75) 
    at NgModuleInjector.create (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:7192:80)constructResolvingMessage: (keys)injectors: Array[1]keys: Array[1]message: (...)name: (...)stack: (...)__proto__: AbstractProviderError Error: No provider for ElementRef! 
    at NoProviderError.Error (native) 
    at NoProviderError.BaseError [as constructor] (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1248:38) 
    at NoProviderError.AbstractProviderError [as constructor] (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1703:20) 
    at new NoProviderError (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:1734:20) 
    at ReflectiveInjector_._throwOrNull (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3331:23) 
    at ReflectiveInjector_._getByKeyDefault (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3359:29) 
    at ReflectiveInjector_._getByKey (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3322:29) 
    at ReflectiveInjector_.get (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:3131:25) 
    at NgModuleInjector.AppModuleInjector.createInternal (AppModule.ngfactory.js:310:75) 
    at NgModuleInjector.create (http://localhost:56159/node_modules/@angular/core//bundles/core.umd.js:7192:80)consoleError @ zone.js:355_loop_1 @ zone.js:382drainMicroTaskQueue @ zone.js:386ZoneTask.invoke @ zone.js:308 
zone.js:357 Error: Uncaught (in promise): Error: No provider for ElementRef!(…)consoleError @ zone.js:357_loop_1 @ zone.js:382drainMicroTaskQueue @ zone.js:386ZoneTask.invoke @ zone.js:308 
+0

angular2のバージョンを使用していますか? – micronyks

+0

最終リリース – blubberbo

+0

その奇妙な!それは動作するはずです。最終版ではどのzone.jsのバージョンを使用していますか? – micronyks

答えて

0

あなたがそれを必要と個々のコンポーネントレベルでそれを使用しています。

import { ElementRef } from '@angular/core'; 
@Component({ 
.... 
}) 
export class DashboardComponent{ 
    constructor(private el:ElementRef){} 
} 
+0

次に 'zone.js:355 Unhandled Promise rejection: ElementRefのプロバイダはありません! ;ゾーン:;タスク:Promise.then;値:NoProviderError' ...どこかを参照していると私に信じさせてくれるが、どこを見つけるか分からない。それは私が持っているプラ​​グインかもしれないので、私はすべてのプラグインのプロバイダとしてそれを追加してみたかった – blubberbo

+0

'imports'から' ElementRef'を削除して、言ったようにします。 – micronyks

+0

私はそれをインポートから削除しました。あなたが言ったようにコンポーネントに追加しましたが、今は 'no provider ... 'と表示されます。 – blubberbo

1

imports配列からElementRefを削除し、providersの配列に貼り付けしよう:

import { NgModule, CUSTOM_ELEMENTS_SCHEMA, ElementRef } from '@angular/core'; 
@NgModule({ 
    declarations: [DashboardComponent, WidgetBankComponent, DataTableDirectives, OrderBy], 
    exports: [DashboardComponent, WidgetBankComponent], 
    imports: [BrowserModule, HttpModule, FormsModule, ChartsModule], 
    providers: [ChartService, GridService, WidgetsControlService, GridViewService, ApplicationSettingsService, DataService, ToolsService, LocalStorageService, RuntimeCompiler, COMPILER_PROVIDERS, NgGrid, NgGridItem, ElementRef], 
    schemas: [CUSTOM_ELEMENTS_SCHEMA] 
}) 
+0

オリジナルの投稿と同じエラーを作成する:( – blubberbo

+0

@blubberbo、あなたはルートプロジェクトフォルダから 'tsc'を実行しますか? – ktretyak

+0

それは正しいです – blubberbo

関連する問題