के भीतर मूल उदाहरण से डेटा तक पहुंच यह एक काफी बुनियादी सवाल जैसा प्रतीत होता है लेकिन मुझे एक निश्चित (या यहां तक कि काम करने वाला) जवाब नहीं दिख रहा है।Vue.js - घटक
मैं अपने रूट उदाहरण है:
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();
}
});
और मैं एक अलग घटक जिसमें मैं घटनाओं जड़ उदाहरण में जमा हो जाती है बाहर की सूची बनाना चाहते है। फिलहाल ऐसा लगता है:
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();
}
}
यह काम नहीं प्रतीत होता है। मैंने this.$root.events
का कोई फायदा नहीं लिया है। इस बारे में जाने का सही तरीका क्या है? ध्यान रखें कि मैं रूट से डेटा का संदर्भ देना चाहता हूं, अपनी प्रतिलिपि के साथ प्रतिलिपि नहीं बनाऊंगा।
संपादित करें:
http://vuejs.org/guide/components.html#Props
मैं तुम्हें पारित: के लिए
var EventsList = Vue.extend({
template: '<ul><li v-for="event in events"><h2>{{ event.title }}</h2><p>{{ event.body }}</p></li></ul>',
props: ['events']
}
क्या आपको यकीन है:
जड़ Vue उदाहरण टेम्पलेट में, आप एक संपत्ति बच्चे घटक में
events
कहा जाता है के रूप में जड़ Vue उदाहरणोंevents
पारित कर सकते हैं आप प्रोप के साथ दो-तरफा सिंक का उपयोग नहीं करना चाहते हैं? इस तरह, आपको दो घटकों को कसकर जोड़ना नहीं होगा। – nilsक्षमा करें मैं इस के लिए बिल्कुल नया हूँ। क्या आप समझ सकते हैं कि आपका क्या मतलब है? मैंने घटनाओं को रूट इंस्टेंस में रखा क्योंकि मैं उन्हें लाइन के नीचे कई घटकों में उपयोग करना चाहता हूं। – Chris
क्या वे घटक 'ईवेंट' को भी बदल देंगे या क्या यह केवल पढ़ने के लिए होगा? मैं एक सेकंड में समझाऊंगा। – nils