当然这很简单,但目前我无法让它发挥作用。我有一个名为 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到目前为止很棒,很享受。
答案 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指令。