Angular 2: 将管道与 ngModel 结合使用

Angular 2: Using pipes with ngModel

我在我的一个表单中使用 JQuery inputmask 和 [(ngModel)],但由于某些原因它们不能一起工作。单独使用其中任何一个都可以很好地工作,但是将这两个完全结合起来会中断 [(ngModel)] 并且新输入不会被发送回组件。在为此苦苦挣扎了一段时间后,我认为使用 Angular 2 的管道将是一个很好的解决方案,但是我也不知道如何让这两者一起工作。

这是我用来测试管道的一些代码

<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,这正是我希望它过滤的方式,但我不想让过滤后的数量低于输入,我想要输入本身显示 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)] 的输入中使用管道(或输入掩码)?

[(ngModel)] 是 [ngModel] 和 (ngModelChange) 的缩写。如果你把它们分开它应该工作(它肯定适用于异步管道):

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