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

Dvi*_*lva 5 angularjs

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

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

它似乎有效,但经过仔细检查后,我意识到它在常规 JS 中的表现并不如何。我期待如果 full_name 未定义或为空,它会尝试另一个,但如果 之后的表达式||有效,则无论左侧的表达式如何,它都会评估为该值。

我找不到原因,我想更多地了解如何解释它以适当利用它。

use*_*723 4

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

user.full_name ?  user.full_name : user.first_name
Run Code Online (Sandbox Code Playgroud)

这相当于

if(user.full_name)
    return user.full_name
else
    return user.first_name
Run Code Online (Sandbox Code Playgroud)

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