AngularJS表达式中的双管(||)

时间:2015-01-27 19:11:18

标签: angularjs

在我的控制器上我有类似的东西: this.user = { first_name: "David", full_name: "David Silva" }

我得到的数据有时没有full_name,所以我尝试了这个表达式: {{user.full_name || user.first_name}}

它似乎正在起作用,但经过仔细检查后,我意识到它并不像常规JS那样表现。我期待如果full_name未定义或为空,它将尝试另一个,但是如果||之后的表达式有效,它将评估为无论左边的表达式如何。

我无法找到原因,而且我想了解更多关于解释它的方式以适当利用它。

1 个答案:

答案 0 :(得分:4)

我在angularJS中遇到了||的问题。为了达到同样的效果,我发现最好使用三元运算符。所以你这样写:

user.full_name ?  user.full_name : user.first_name

这相当于

if(user.full_name)
    return user.full_name
else
    return user.first_name

三元运算符有点冗长,但我发现它有效,而||有问题。