我有一个 HTML 输入字段。
<input
[(ngModel)]="item.value"
name="inputField"
type="text"
/>
我想格式化它的值并使用现有的管道:
....
[(ngModel)]="item.value | useMyPipeToFormatThatValue"
....
并得到错误消息:
操作表达式中不能有管道
在这种情况下如何使用管道?
你不能使用模板表达式运算符 https://angular.io/docs/ts/latest/guide/template-syntax.html#!#expression-operators模板语句中的(管道,保存导航器):
(ngModelChange)="Template statements"
(ngModelChange)="item.value | useMyPipeToFormatThatValue=$event"
https://angular.io/guide/template-syntax#template-statements https://angular.io/guide/template-syntax#template-statements
与模板表达式一样,模板语句使用的语言
看起来像 JavaScript。模板语句解析器不同于
模板表达式解析器,特别支持基本的
赋值 (=) 和链接表达式(带有 ; 或 ,)。
然而,某些 JavaScript 语法不允许:
- new
- 递增和递减运算符 ++ 和 --
- 运算符赋值,例如 += 和 -=
- 按位运算符 |和 &
- 模板表达式运算符
所以你应该这样写:
<input [ngModel]="item.value | useMyPipeToFormatThatValue"
(ngModelChange)="item.value=$event" name="inputField" type="text" />
笨蛋的例子 https://plnkr.co/edit/0CQVXl1Y9UsDp5TCszSk?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)