2015-12-14 2 views
0

Уверен, что это просто, но на данный момент я просто не могу заставить его работать. У меня есть компонент, называемый posts.vue, который включает эту ссылку в шаблоне:Получить атрибуты данных из v-link

<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') 
} 

Теперь мой вопрос, как я могу получить postid данные атрибуты в моем компоненте post.vue, который загружается после соответствия маршрута.

В моих старых Jquery дней я хотел бы сделать это так:

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

(Просто, чтобы продемонстрировать то, что я имел в виду)

Спасибо за любую помощь, ребята! Vue.js пока замечательно, наслаждайтесь им.

ответ

2

Предполагая, что у вас есть почтовый объект внутри компонента, который вы установили с помощью 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 для этого не требуется.

+0

Работал, спасибо много тасо! :) – paperboy