vuejs

2016-05-14 24 views
7

में घटक टेम्पलेट से पहुंच माता पिता तरीकों मैं इस कोड है? इस तरह:vuejs

Uncaught TypeError: scope.doSomething is not a function

+0

कोशिश 'वी-ऑन: क्लिक करें =" DoSomething "' – maioman

+0

@maioman मुझे मिल गया इस [Vue चेतावनी दी है]: वी-ऑन: क्लिक करें = "DoSomething" एक समारोह मूल्य की उम्मीद है, अपरिभाषित गया (घटक में पाया : <ऐप-घटक>) – saeedhbi

उत्तर

1

आप बच्चे से $ प्रेषण का उपयोग कर सकते घटना ट्रिगर करना:

<app-component> 
    <a href="#" v-on:click="doSomething()">text</a> 
</app-component> 

मैं इस त्रुटि मिलती है। उदाहरण: http://vuejs.org/guide/components.html#Parent-Child-Communication

+0

क्या घटनाओं के बिना कोई समाधान है? जैसे प्रोटोटाइप वू इंस्टेंस या इत्यादि। – saeedhbi

+1

@ सईदबी मैं आपके जैसा कुछ हासिल करने की कोशिश कर रहा था, यानी सभी साझा/सामान्य तरीकों को मूल घटक में डाल दें और फिर नए घटक बनाने के लिए बेस घटक का विस्तार करें, जिन्हें साझा/सामान्य तरीकों की आवश्यकता होती है। मिश्रण या कस्टम प्लगइन का उपयोग करना एक और अधिक सुरुचिपूर्ण समाधान लगता है। मैं वर्तमान में मिश्रित दृष्टिकोण का उपयोग कर रहा हूं, जिसमें मेरे पास मिश्रित में सभी साझा विधियां हैं और जब भी किसी घटक को उन साझा विधियों की आवश्यकता होती है, तो मैं उस घटक में मिश्रित का उपयोग करता हूं। वू में मिक्सिन सिर्फ 'php' में विशेषता' की तरह हैं। आशा करता हूँ की ये काम करेगा। – Donkarnash

+0

बंद कारण, मिश्रणों का जवाब है! धन्यवाद! – pilat

0

Wiljan प्रतिक्रिया के अलावा, मैं नए Vue उदाहरण है कि तरीकों और डेटा के साथ सभी घटकों का विस्तार:

// App component 
<app-component> 
    <a href="#" v-on:click.prevent="$dispatch('do-something')">text</a> 
</app-component> 


// Parent 
new Vue({ 
    el: '#app', 
    components: { 
     'app-component': AppComponent 
    }, 
    data: { 
     message: 'Hello Vue.js!' 
    }, 
    events: { 
     'do-something': function(){ 
      console.log('arrived!') 
     } 
    } 
}); 

अभिभावक-बच्चे संचार बारे में अधिक जानकारी के लिए, दस्तावेज़ीकरण की जाँच करें। अब मैं तरीकों का उपयोग करने और आदि

+0

क्या आप उस पर विस्तार कर सकते हैं? मुझे यकीन नहीं है, लेकिन ऐसा लगता है कि किसी को निश्चित रूप से नहीं करना चाहिए ... –

+0

@LinusBorg मैं प्रोप या घटनाओं के साथ विधियों को साझा नहीं करना चाहता हूं और ये विधियां और डेटा उपयोगकर्ता या कंपनी की तरह वैश्विक हैं और सभी को साझा किया जाना चाहिए आवेदन पर भी घटक। और मैं उन्हें $ माता-पिता या $ प्रेषण या आदि के साथ उपयोग नहीं करना चाहता हूं। प्रत्येक घटक पर मैं इसे प्राप्त करने के लिए "विस्तार" संपत्ति का उपयोग करता हूं और इस पर उपयोग करता हूं। अब मैं विधि टेम्पलेट में विधि नाम तक पहुंचता हूं। मुझे पता है कि घटक isole हैं और अलग होना बेहतर है, लेकिन मुझे लगता है कि यह कुछ भी हरा नहीं है। – saeedhbi

10

v-on:click="$parent.doSomething()"

0

कोशिश आप इस का उपयोग कर सकते हैं पर this answer आधारित,।

this.$parent.$options.methods.someParentMethod(data) 
संबंधित मुद्दे