Angular 2-重写空值的默认绑定行为的可能性
在Angular 2-6中是否可以覆盖空值的默认绑定/插值行为 比如说,Angular 2-重写空值的默认绑定行为的可能性,angular,binding,Angular,Binding,在Angular 2-6中是否可以覆盖空值的默认绑定/插值行为 比如说, {{ null }} // gives '' 我希望重写此行为,以便{{null}}在HTML中解析为NA或- PS:我知道实现这一点的常用方法,比如{{null | | |'NA'}},但是我想要一个集中的解决方案 更新: Pipes无疑是比使用or操作符更好的解决方案,但它将需要与上述相同数量的代码复制/噪声。{null | NAPipe}}与{{null | | | NA'}一样嘈杂。您可以使用一个管道,在这里为数
{{ null }} // gives ''
我希望重写此行为,以便{{null}}在HTML中解析为NA或-
PS:我知道实现这一点的常用方法,比如{{null | | |'NA'}},但是我想要一个集中的解决方案
更新:
Pipes无疑是比使用or操作符更好的解决方案,但它将需要与上述相同数量的代码复制/噪声。{null | NAPipe}}与{{null | | | NA'}一样嘈杂。您可以使用一个管道,在这里为数据ex-null提供显示值 当值为null时,管道将返回“NA”
@Pipe({ name: 'displayFormatter' })
export class DisplayFormatterPipe implements PipeTransform {
public transform(value: any): string {
switch (value) {
case null:
return 'NA'
break;
case ... // complete the code
}
}
}
在你的html中
{{value | displayFormatter}}
如果您不喜欢使用管道,请从生成这些值的方法返回一个显示值
yourFunction(): any {
....
return this.formatValue(yourValue); // Implement formatValue to generate display value
}
你想避免使用管道吗?是的。虽然管道是集中式解决方案,但它需要在组件中重复相同数量的代码。只需将其添加到组件对象中的ngOnChanges中即可。keysthis.forEachkey=>this[key]=this[key]==null?“答:这个[键]。我相信还有很多其他方法可以浪费时间来节省自己的时间。我不知道你为什么会被否决。这个问题似乎足够具体,框架通常提供钩子来全局覆盖某些内容。@FrankModica Angular没有提供任何钩子来说明它如何处理表达式解析。您可以使用组件中的管道和方法。他似乎不想那样。所以不可能有正确的答案。向下投票节省了其他人的时间,这样他们就可以避免发布他不会接受的答案。如果他因为代码重复而不想使用管道,我想他也不想在任何地方都这样做,但我的答案至少可以被另一个有类似问题的人考虑,如果他只有一个或最小的yourFunction类方法的话。他可以尽量减少重复