搜索

首页  >  问答  >  正文

vue.js - vue获取mongodb中的数据起初显示未定义,但还是可以渲染

[Vue warn]: Error when evaluating expression "topic.meta.createAt != topic.meta.updateAt": TypeError: Cannot read property 'createAt' of undefined (found in component: <v-article>)

[Vue warn]: Error when evaluating expression "topic.meta.createAt": TypeError: Cannot read property 'createAt' of undefined (found in component: <v-article>)

这是报错信息,下面是我的代码部分。

    <h1>{{ topic.title }}</h1>
    <p class="info">
      <a v-for="tag in topic.tag" v-link="{name: 'tab', params: {tab: tag, page: 1}}" class="tag">
        {{ tag | convertTag}}
      </a>
      <a class="name"><strong>radical</strong></a>
      <span class="ask">{{ topic.meta.createAt | timeToNow }}&nbsp;发布</span>
      <span v-if="topic.meta.createAt != topic.meta.updateAt" class="update">{{ topic.meta.updateAt | timeToNow }}&nbsp;更新</span>
    </p>

这是 一个组件 topic是通过我的getters会获取到的,通过actions向mongodb请求数据,看上去一切都很正常。。。
convertTag和timeToNow都是我自己写的filter

仅有的幸福仅有的幸福2789 天前765

全部回复(2)我来回复

  • 世界只因有你

    世界只因有你2017-05-02 09:24:47

    这样的你应该先判断存在topic.meta对象在去去它的属性,这样就不报错了,
    报错的原因就是你没有获得meta数据的时候去获取它的属性

    <h1>{{ topic.title }}</h1>
        <p class="info">
          <a v-for="tag in topic.tag" v-link="{name: 'tab', params: {tab: tag, page: 1}}" class="tag">
            {{ tag | convertTag}}
          </a>
          <a class="name"><strong>radical</strong></a>
          <span v-if="!!topic.meta" class="ask">{{ topic.meta.createAt | timeToNow }}&nbsp;发布</span>
          <span v-if="!!topic.meta && topic.meta.createAt != topic.meta.updateAt" class="update">{{ topic.meta.updateAt | timeToNow }}&nbsp;更新</span>
        </p>

    回复
    0
  • 高洛峰

    高洛峰2017-05-02 09:24:47

    topic.meta = 未定义。

    回复
    0
  • 取消回复