这似乎是一个相当基本的问题,但我似乎找不到一个明确的(甚至是工作的)答案.
我有我的根实例:
var vm = new Vue({
el: '#app',
// Data
data: {
events: {}
},
// Methods
methods: {
fetchEvents: function(){
this.$http.get('/api/events').success(function(theseEvents) {
this.$set('events', theseEvents);
}).error(function(error) {
});
}
},
ready: function(){
this.fetchEvents();
}
});
Run Code Online (Sandbox Code Playgroud)
我有一个单独的组件,我想在其中列出存储在根实例中的事件.目前它看起来像这样:
var EventsList = Vue.extend({
template: '<ul><li v-for="event in events"><h2>{{ event.title }}</h2><p>{{ event.body }}</p></li></ul>',
data: function(){
return {
events: {}
}
},
methods: {
syncEvents: function(){
this.$set('events', this.$parent.events);
}
},
// When ready...
ready: function(){
this.syncEvents();
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.我也试着this.$root.events
无济于事.这是怎样的正确方法?请记住,我想从根目录引用数据,而不是创建具有自己范围的副本.
编辑:尝试使用道具,这里是列表组件,这也是无法正常工作:
var EventsList …
Run Code Online (Sandbox Code Playgroud)