从v-link

时间:2015-12-14 03:36:25

标签: javascript vue.js

当然这很简单,但目前我无法让它发挥作用。我有一个名为 posts.vue 的组件,它在模板中包含此链接:

<template>
    <a v-link="{ name: 'post', params: { slug: post.post_name }}" v-postid="{ post.ID }"><h2>{{ post.post_title }}</h2></a>
</template>

我的路线设置如下:

'/post/:slug': {
    name: 'post',
    component: require('./components/post.vue')
}

现在我的问题是如何在post.vue组件中获取 postid 数据attribut,该组件在路由匹配后加载。

在旧的jquery时代,我会这样做:

$('a.link').click(function() {
    var attr = $(this).data('post-id');
}

(只是为了展示我的意思)

感谢您的帮助! Vue.js到目前为止很棒,很享受。

1 个答案:

答案 0 :(得分:2)

假设您在组件内部有一个post对象,您在加载路径后使用ajax设置

data: function() {
  return {
    post: {}
  }
}

route: function() {
  data: function() {
    var resource = fetchPost(this.$route.params.slug)
    this.$set('post', resource)
  }
}

您可以在组件中的任何位置访问post.id,例如this.$data.post.id 为此不需要v-postid指令。