2016-07-26 6 views
1

最近、angle-2のバージョンをbeta-17からRC4にアップグレードしました。Angular2のエラー - 値のアクセサーなし ''

私は質問の解決策、No value accessor for '' angular2を見ました。

私の質問はこの質問の回答に関連しています。私はエラーから、次のように私はまだ、エラー値アクセサのエラーが直面しています

import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { provide, enableProdMode, PLATFORM_DIRECTIVES } from '@angular/core'; 
import { LocationStrategy, HashLocationStrategy } from '@angular/common'; 
import { HTTP_PROVIDERS, Http } from '@angular/http'; 
import {disableDeprecatedForms, provideForms} from '@angular/forms'; 

import { AppComponent } from './app.component'; 
import { APP_ROUTER_PROVIDERS} from './app.routes'; 

var injectables = [ 
    provideForms(), 
    disableDeprecatedForms(), 
    APP_ROUTER_PROVIDERS, 
    provide(LocationStrategy, { useClass: HashLocationStrategy }), 
    HTTP_PROVIDERS,  
]; 

bootstrap(AppComponent, injectables) 
    .then(null, console.error.bind(console)); 

platform-browser.umd.js:1900 Error: No value accessor for '' 
    at new BaseException (forms.umd.js:599) 
    at _throwError (forms.umd.js:1569) 
    at setUpControl (forms.umd.js:1546) 
    at NgModel._setUpStandalone (forms.umd.js:2349) 
    at NgModel._setUpControl (forms.umd.js:2341) 
    at NgModel.ngOnChanges (forms.umd.js:2300) 
    at DebugAppView._View_ProjectDetailComponent1.detectChangesInternal (ProjectDetailComponent.template.js:1176) 
    at DebugAppView.AppView.detectChanges (core.umd.js:12143) 
    at DebugAppView.detectChanges (core.umd.js:12247) 
    at DebugAppView.AppView.detectContentChildrenChanges (core.umd.js:12161) 

を私boot.tsを更新しました

、私はそのは角使用していることを推測することができます/角度のない形/共通。

<input type="text" class="form-control" name="ProjectNo" [(ngModel)]="ProjectNo" /> 
     <input type="text" pInputText class="form-control" name="ProjectText" [(ngModel)]="Text" /> 
     <textarea pInputTextarea class="form-control" name="ProjectAdditionalText"></textarea> 
     <input type="text" pInputText class="form-control" name="Phase" [(ngModel)]="Phase" /> 

     <p-calendar [readonlyInput]="true" monthNavigator="true" yearNavigator="true" placeholder="Pick a date" name="PlannedStartDate" [(ngModel)]="PlannedStartDate"></p-calendar> 

     <p-checkbox name="BackwardPlanning" [(ngModel)]="BackwardPlanning"></p-checkbox> 

それが使用することを間違っている:次のように

私のコンポーネントDefinationは、

import {Component, Injector, OnInit, OnDestroy} from '@angular/core'; 
import {FORM_DIRECTIVES} from '@angular/common'; 
import {Subscription} from 'rxjs/Rx'; 
import {ProjectComponent} from '../../../project.component'; 

import { Calendar, InputText, InputTextarea, Checkbox, DataTable, Column, Dropdown } from 'primeng/primeng'; 


@Component({ 
    selector: 'projectDetail', 
    directives: [Calendar, InputText, InputTextarea, Checkbox, DataTable, Column, Dropdown, FORM_DIRECTIVES], 
    templateUrl: 'template/project/details/project' 
}) 

マイコンポーネントテンプレートのですか?

'@ angular/common'からのインポート{FORM_DIRECTIVES}。

[編集] - @ハリーの提案した後、私は

インポート{REACTIVE_FORM_DIRECTIVES}角度/フォーム@ 'からを使用しています。

しかし

platform-browser.umd.js:1900 ORIGINAL EXCEPTION: No provider for NgModel! 

platform-browser.umd.js:1900 Error: DI Exception 
    at NoProviderError.BaseException [as constructor] (core.umd.js:4412) 
    at NoProviderError.AbstractProviderError [as constructor] (core.umd.js:4529) 
    at new NoProviderError (core.umd.js:4565) 
    at ReflectiveInjector_._throwOrNull (core.umd.js:6461) 
    at ReflectiveInjector_._getByKeyDefault (core.umd.js:6489) 
    at ReflectiveInjector_._getByKey (core.umd.js:6452) 
    at ReflectiveInjector_.get (core.umd.js:6261) 
    at ElementInjector.get (core.umd.js:11873) 
    at ElementInjector.get (core.umd.js:11873) 
    at ReflectiveInjector_._getByKeyDefault (core.umd.js:6486) 

が助けてください、次のように、それは別のエラーに私をリードしています。

+0

私はそれはケースだと思います。あなたは '@Angel/forms'から' REACTIVE_FORM_DIRECTIVES'を使ってフォームを変更することもできます。 –

+0

@HarryNinh:あなたのコメントの後に質問を編集しました。 NgModel Nowに別のエラーが表示されます。 NgModelが突然現れなかった理由はまだわかりません。 – Jeet

+0

私はFORM_DIRECTIVESに戻すべきだと思います。問題は、[(ngModel)]を持つすべての入力に名前属性を追加する必要があることだと思います。新しいフォームモデルにはそれが必要です。 –

答えて

2

すべての可能な回答について調査した後。私は使用を終了します。

'@Angre/forms'からのインポート{REACTIVE_FORM_DIRECTIVES}。

これは私の問題を解決し、PrimeNGコンポーネントはNgModelバインディングでも動作します。

これは、これが似たような問題を抱えている人に役立つことを願っています。

よろしく、 JEET

関連する問題