2016-03-02 11 views
6
data: function() { 
    return { 
     questions: [] 
    } 
}, 

watch: { 
    questions : function(val, oldVal) { 
     foo() 
    } 
},  

methods: { 
    foo() { 
     console.log("foo called"); 
    } 
} 

उत्पादन त्रुटि: ReferenceError: foo is not definedघड़ी से फ़ंक्शन को कैसे कॉल करें?

इसके अलावा, मैं उदाहरण से देख रहा हूँ: http://vuejs-ru.github.io/vuejs.org/api/options.html#watch

क्या इस स्ट्रिंग करते हैं?

handler: function (val, oldVal) { /* ... */ }, handler यह कीवर्ड है? या यह काम किया जा सकता है?

data: function() { 
    return { 
     questions: [] 
    } 
}, 

watch: { 
    questions: { 
     handler: function(val, oldVal) { 
      this.foo(); // call it in the context of your component object 
     }, 
     deep: true 
    } 
},  

methods: { 
    foo() { 
     console.log("foo called"); 
    } 
} 

अपने प्रश्न के बारे में handler उत्तर देने के लिए:

उत्तर

8

आप घड़ी का उपयोग करने के लिए अपनी संपत्ति का निरीक्षण करना चाहते हैं, तो आप अपने विधि यह this.foo साथ कह सकते हैं यह एक कीवर्ड संपत्ति है कि या तो एक समारोह अभिव्यक्ति ले सकता है (उदाहरण के रूप में) या इस तरह के रूप में एक समारोह के लिए एक संदर्भ,:

function myHandler() { ... } // Defined somewhere outside of the vue component object 

... 

handler: myHandler, 

... 

बस जिज्ञासा से बाहर: आप हर बार यह परिवर्तन कुछ करने के लिए में एक संपत्ति देखने की जरूरत है या computed properties अपने जनसंपर्क का समाधान कर सकता क्या ओबिलम भी?

+0

क्या मैं सही समझता हूं कि 'foo' को बदलने वाले प्रत्येक डेटा पर कॉल किया जाएगा? मुझे प्रत्येक उपयोगकर्ता पर चेकबॉक्स पर क्लिक करने के लिए अपना डेटा जांचना होगा। तो मेरे लिए पर्याप्त 'घड़ी' है? अब मैं 'v-model =" firstLevelAnswer.is के साथ 'प्रश्न' संरचना के मानों को बदलता हूं "। और अब जब मैं चेकबॉक्स पर क्लिक कर रहा हूं तो मुझे कंसोल पर कोई भी परिवर्तन दिखाई नहीं देता है। मैं उम्मीद करता हूं कि 'डेटा' बदलते समय foo को हर बार बुलाया जाए। –

+0

'firstLevelAnswer' क्या है? अपने कोड के साथ, आप केवल 'प्रश्नों' में बदलावों के लिए देख रहे हैं। 'घड़ी' ऑब्जेक्ट में कुंजी का नाम वह संपत्ति है जिसे आप देखना चाहते हैं। – nils

+0

यहां मेरे प्रश्न हैं: http://www.everfall.com/paste/id.php?6blwxsym1kmm यहां मेरी परियोजना का मुख्य हिस्सा: http://www.everfall.com/paste/id.php?yptv4v76qqmi –

संबंधित मुद्दे