recherche

Maison  >  Questions et réponses  >  le corps du texte

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

仅有的幸福仅有的幸福2757 Il y a quelques jours737

répondre à tous(2)je répondrai

  • 世界只因有你

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

    Dans ce cas, vous devez d'abord déterminer que l'objet topic.meta existe avant d'obtenir ses attributs, afin qu'aucune erreur ne soit signalée.
    La raison de l'erreur est que vous obtenez ses attributs alors que vous n'avez pas obtenu les attributs. métadonnées

    <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>

    répondre
    0
  • 高洛峰

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

    topic.meta = non défini.

    répondre
    0
  • Annulerrépondre