vue-router的$loadingRouteData属性切换失败

<template>
  <template v-if="$loadingRouteData">
    loading
  </template>
  <template v-else>
    <v-article></v-article>
  </template>
</template>

<script>
  import vArticle from './article'
  import { getTopic } from '../vuex/actions'

  export default {
    vuex: {
      actions: {
        getTopic
      }
    },
    components: {
      vArticle
    },
    route: {
      data({ to: {params: { id='' } } }) {
        console.log(this.$loadingRouteData)
        return this.getTopic(id)
                  .then((res) => {
                    console.log(this.$loadingRouteData)
                  })
      }
    }
  }
</script>

actions.js

export const getTopic = ({dispatch}, id) => {
  return Vue.http
            .get(config.dev.host + '/api/topic', {
              params: {
                id
              }
            })
            .then((res) => {
              if (res.body.status === 0) {
                res.body.topic.content = Marked(res.body.topic.content)
                dispatch('GET_TOPIC_SUCCESS', res.body.topic)
              }
              return res
            }, (err) => {
              console.error(err)
            })
}

打印出的loading,2个都是true,不应该是从true到false吗?因为我的promise被断定后?
vue-router版本是0.7.13

阅读 4.7k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题