v-if指令中允许的查找级别是多少?

时间:2017-04-29 18:08:07

标签: javascript vue.js

我有一个像这样的标记:

<div class="form-group" v-if="model.owner.enabled">

范围内可用的模型如下所示:

{
   ...
   owner: {
      enabled: true
      ...
   }
   ...
}

但是vue不喜欢它并且去:

TypeError: Cannot read property 'enabled' of undefined

有人能发现错误吗?可能是因为查找仅限于模型对象的第一级?

事实上,如果我将标记更改为:

<div class="form-group" v-if="model.owner">

它只是工作,元素被渲染。据说因为我认为model.owner对象被认为是真正的价值。

由于

1 个答案:

答案 0 :(得分:2)

没有限制。我怀疑这里的问题是你的模型是异步填充的。如果是这种情况,那么,当首次呈现Vue时,model.owner将为undefinedmodel.owner.enabled将导致您所描述的错误。

model.owner可能有效,因为model已定义且owner不是在呈现Vue时。然后,当填充模型时,owner不再是未定义的。

你可以通过使用警卫来解决这个问题。

<div class="form-group" v-if="model.owner && model.owner.enabled">

这是example