2016-10-31 56 views
8

我在我的一個表單中使用了JQuery輸入掩碼以及[(ngModel)],但由於某些原因,它們不能一起工作。單獨使用任何一個都可以很好地工作,但將兩個完全中斷組合在一起並且新輸入不會被髮送回組件。經過一段時間的努力之後,我認爲使用Angular 2的管道會是一個很好的解決方案,但是我無法弄清楚如何讓這兩者一起工作。Angular 2:在ngModel中使用管道

下面是一些代碼,我使用的測試我管

<input [(ngModel)]="Amount" id="Amount" name="Amount" class="form-control" type="number" autocomplete="off"> 
<p>Amount: {{Amount | number:'1.2-2'}}</p> 

如果我在12345鍵入時,<p>標籤下方將顯示12,345.00,而這正是我希望的方式進行篩選,但我不」 t想要在輸入下面過濾的數量,我希望輸入本身顯示12,345.00。像ngModel那樣添加同樣的管道:[(ngModel)]="Amount | number:'1.2-2'"給我以下錯誤。

Parser Error: Cannot have a pipe in an action expression at column 10 in [Amount | number:'1.2-2'=$event]

如何在輸入內使用管道(或輸入掩碼)[(ngModel)]

回答

22

[(ngModel)]是[ngModel]和(ngModelChange)的簡寫。如果你把它們分開它應該工作(它爲確保與異步管道):

[ngModel]="Amount | number: '1.2-2'" (ngModelChange)="updateAmount($event)" 
+0

我看,那個偉大的工作,雖然現在我在與光標位置的問題,但我也許應該發佈新的問題。 – Brett

+0

拋出的錯誤在哪裏?在你的變更處理程序中 – Meir

+1

但是錯誤本身在哪裏?什麼是堆棧?它到達你的更新處理程序了嗎? – Meir