温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Using Pipes within ngModel on INPUT Elements in Angular
angular pipe html-input angular2-ngmodel

其他 - 在AngModel中的ngModel上的ngModel中使用管道

发布于 2020-04-14 15:16:23

我有一个HTML INPUT字段。

<input 
    [(ngModel)]="item.value" 
    name="inputField" 
    type="text" 
/>

我想格式化其值并使用现有管道:

.... 
[(ngModel)]="item.value | useMyPipeToFormatThatValue" 
....

并得到错误信息:

动作表达式中不能有管道

在这种情况下如何使用管道?

查看更多

提问者
Lonely
被浏览
130
yurzui 2018-06-08 19:09

您不能在模板语句中使用模板表达式运算符(管道,保存导航器):

(ngModelChange)="Template statements"

(ngModelChange)=“ item.value | useMyPipeToFormatThatValue = $ event”

https://angular.io/guide/template-syntax#template-statements

与模板表达式一样,模板语句使用的语言类似于JavaScript。模板语句解析器不同于模板表达式解析器,并且特别支持基本赋值(=)和链接表达式(带有;或,)。

但是,某些JavaScript语法是不允许的

  • 增量和减量运算符++和-
  • 运算符分配,例如+ =和-=
  • 按位运算符| 和&
  • 模板表达式运算符

所以你应该这样写:

<input [ngModel]="item.value | useMyPipeToFormatThatValue" 
      (ngModelChange)="item.value=$event" name="inputField" type="text" />

柱塞示例