Vue等效于{{content?.body}}插值

时间:2019-03-31 11:55:41

标签: javascript angular vue.js

在角度上,我们可以执行类似{{content?.body}}的操作,如果内容主体存在于您的数据中,它将呈现内容主体。

这在Vue中似乎不起作用。有没有办法做到这一点,或者我必须手动检查。

3 个答案:

答案 0 :(得分:0)

在Vue中,您可以使用 v-if 指令。例如;

 <div v-if="content.body">
   {{content.body}}
 </div>

有关更多信息,请访问Vue official docs

答案 1 :(得分:0)

该语法在vue.js中不存在,根据Vue.js(see this post)的创建者来说,它可能永远不存在

但是您可以将lodash中的get与计算属性结合使用来模拟此行为:

computed: {
   nestedProperty() {
     return get(this, 'here.is.my.nested.property')
   }
} 

但是最简单的方法可能是向模板中添加v-if指令以检查属性是否存在

答案 2 :(得分:0)

我猜您正在寻找一种类似的方法来替代来自kotlin的迅速或安全呼叫操作员的可选拆包。 JS或Vue.js都不支持此功能。

您最安全的选择是在整个链条上使用v-if

<span v-if=“content && content.body”>
  {{content.body}}
</span>