AngularJS - 在绑定中使用三元运算符和过滤器

Posted

技术标签:

【中文标题】AngularJS - 在绑定中使用三元运算符和过滤器【英文标题】:AngularJS - Using ternary operators and filters within a binding 【发布时间】:2014-12-12 22:22:37 【问题描述】:

我目前有一个简单的数据绑定:

 myAccount.Balance 

我认为应用了几个过滤器:

 myAccount.Balance | filter1 | filter2 

但是,当余额小于零时,我想使用三元运算符,以下工作(没有过滤器):

 myAccount.Balance > 0 ? myAccount.Balance : myAccount.Balance + 'minus' 

我怎样才能使用上面的过滤器 1 和 2?

【问题讨论】:

【参考方案1】:

您需要将它们括在括号中 () 优先

 (myAccount.Balance > 0 ? myAccount.Balance : myAccount.Balance + 'minus') | filter | filter 2 

【讨论】:

虽然上面现在使用了过滤器,但它没有添加“减号”文本。 @OamPsy 当您期望 minus 连接时,myAccount.Balance 的结果是什么。 应该显示“£3000(减)” @OamPsy 所以实际的myAccount.Balance 结果是£3000?如果是这样,您是否在控制台中看到任何错误 实际结果是 -3000,所以 £-3000.... 我添加了 £(但稍后会这样做.. 过滤器之一删除 - (减号).. 这是哪里我希望文本(减号)出现。

以上是关于AngularJS - 在绑定中使用三元运算符和过滤器的主要内容,如果未能解决你的问题,请参考以下文章

在angularjs中使用三元运算符来设置元素的属性

在 AngularJS 的三元运算符中使用过滤器

堆叠三元运算符在 Angularjs 表达式中不起作用

如何在 AngularJS 的 ng-init 中使用三元? [复制]

AngularJS:三元运算符条件检查中的函数调用

AngularJS 三元表达式无效