2017-10-07 97 views
1

我只是偶然發現了一個痛苦的發現,即如果您將值綁定到輸入的屬性ngModel不能識別它們,它最常見的錯誤是它需要name屬性或將ngModelOptions設置爲standalone。我在github上發現了一個解決這個問題的頁面,但是評論在2016年停止了。他們迄今爲止的解決方案是將輸入獨立出來,並將其從整體表格中排除,這不是我想要做的。據我所知[attr.name]="..." [attr.id]="..."是綁定屬性值的唯一方法。有沒有辦法讓ngModel識別屬性綁定語法?

對於Angular來說,作爲一個平臺,你不會期望像屬性綁定這樣的東西阻止你的整個工作流程,並需要一些先進的奇蹟。看起來如果我們想要做任何事情,除了有一個簡單的預定義形式,人們可以在其中輸入他們的名字,地址和超級力量,我們必須在現實世界中與別的東西一起走。爲什麼沒有更多的文檔概述了FormsModules當前的侷限性,因爲我確定很多人在使用Angular Angular默認的東西時對FormsModules的期望比他們實際所能達到的要高得多。有關此問題的任何進展是否有任何解決方案或最新信息?

+1

你可能要考慮重新措辭你的問題;就目前而言,您正在描述一個理論問題,如果沒有看到您正在嘗試使用的代碼,就很難理解這個問題,並且問題的後半部分會以僞裝的形式出現。如果你要展示一些示例代碼,並且減少評論,你將有更大的機會得到一個好的答案。 – Claies

+0

'[attr.name]'是綁定到attr屬性的方式,'[name]'是綁定到屬性的語法。 –

回答

0

只有實現ControlValueAccessor的組件支持綁定到ngModel

綁定到自定義屬性使用

@Input() 
myProp:string; 

@Output() 
myPropChange:EventEmitter<String> = new EventEmitter<String>(); 

的命名約定foo(輸入)和fooChange(輸出)是必需的,以支持雙向像

[(myProp)]="bar" 

結合如果這種命名不其次,只支持明確約束兩者

[myProp]="bar" (myPropX)="bar = $event" 

for

@Input() 
myProp:string; 

@Output() 
myPropX:EventEmitter<String> = new EventEmitter<String>(); 
相關問題