2016-07-01 37 views
1

我與Angular2 rc.4和PrimeNg 1.0.0.beta.9工作,我得到這個錯誤:沒有價值訪問爲「」 angular2

platform-browser.umd.js:1900 Error: No value accessor for '' 
    at new BaseException (common.umd.js:836) 
    at _throwError (common.umd.js:3516) 
    at setUpControl (common.umd.js:3493) 
    at NgModel.ngOnChanges (common.umd.js:4103) 
    at DebugAppView._View_ItemComponent1.detectChangesInternal (ItemComponent.template.js:1266) 
    at DebugAppView.AppView.detectChanges (core.umd.js:12143) 
    at DebugAppView.detectChanges (core.umd.js:12247) 
    at DebugAppView.AppView.detectContentChildrenChanges (core.umd.js:12161) 
    at DebugAppView._View_ItemComponent0.detectChangesInternal (ItemComponent.template.js:688) 
    at DebugAppView.AppView.detectChanges (core.umd.js:12143) 

這種情況與所有PrimeNG使用[(ngComponent)],例如p-下拉指令組件:

<p-dropdown [options]="items" [(ngModel)]="item"></p-dropdown> 

我follewed的Angular2教程和PrimeNG展櫃,所有的工作細到現在爲止,這是我面臨的是我的第一個問題解決不了。

如果我只去除部分

[(ngModel)]=... 

錯誤不會出現,該組件正確顯示,即使我的產品清單。

在我component.ts文件我已經注入該指令就像我和其他幾個人來完成:

import {SelectItem, Dropdown} from 'primeng/primeng'; 
... 
@Component({ 
... 
directives:  [Dropdown], 
}) 

我的問題是類似這樣的: ngmodele-no-value-accessor-for

但對我來說自定義組件來自第三方庫(PrimeNG),我無法控制它

+0

[ngModel:沒有價值訪問器 '']的可能的複製(http://stackoverflow.com/questions/34496514/ngmodel-no-value-accessor-for) – lux

回答

1

拋出的錯誤指示它正在使用來自已棄用的角度common.umd.js模塊的ngModel。它應該在新的角度模塊模塊中使用ngModel。嘗試在main.ts中禁用棄用的表單。

例子:

import {bootstrap} from '@angular/platform-browser-dynamic'; 
import {App} from './app'; 
import { provideForms, disableDeprecatedForms } from '@angular/forms'; 

bootstrap(App, [provideForms(), 
      disableDeprecatedForms()]) 
    .catch(err => console.error(err)); 

編輯:忘了補充...如果你看一下PrimeNG下拉組件,你會看到它引用的新角度的形式。 Github:dropdown.ts

+0

謝謝你很多,它解決了問題,你救了我一天! – Nicola

+0

我已禁用formdeprecated但仍面臨同樣的問題?還有什麼需要做的? –

0

我的猜測是p-dropdown不支持這個[(ngModel)]綁定,怎麼樣通過他們的文檔找出來。 你可以嘗試

[(value)]="your variable" 
+1

的結合是正確的,從官方文檔: '' [鏈接](HTTP://www.primefaces .org/primeng /#/ dropdown) – Nicola

+0

是的,你可能是,但如何解決這個任何想法?如何在primeng中綁定'([value]]'值? –

+0

通過應用您的解決方案,它給了我們錯誤'不能讀取未定義的推的屬性? –