2014-10-10 5 views
6

मेरे पास एक घटक है जो फ़ाइलफील्ड, से बढ़ाया गया है और मैंने इसमें एक कस्टम प्रॉपर्टी 'सर्वरपैथ' जोड़ा है, और मैंने गेटर और सेटर को भी परिभाषित किया है।extjs 5: घटक की कस्टम प्रॉपर्टी के लिए डेटा बाध्यकारी बनाएं

कोड:

Ext.define('MyApp.ux.Field.File',{ 
    extend:'Ext.form.field.File', 
    xtype:'myfilefield', 
    serverPath:'', 
    getServerPath:function(){ 
    return this.serverPath; 
}, 
setServerPath:function(serverPath){ 
    this.serverPath = serverPath; 
} 
}); 

Ext.create('MyApp.ux.Field.File',{ 
    bind:{ 
     serverPath:'{serverPath}' 
    }, 
    viewModel:{ 
     type:'myViewModel' 
    } 
}); 

मैं myViewModel की परिभाषा पेस्ट नहीं होंगे। यह आसान है।

और यह पता चला कि बाध्यकारी प्रभाव नहीं ले करता है।

कोई भी मदद कर सकता है?

उत्तर

8

आपका वर्ग होना चाहिए:

Ext.define('MyApp.ux.Field.File',{ 
    extend:'Ext.form.field.File', 
    xtype:'myfilefield', 
    config: { 
    serverPath:'' 
    } 
}); 

और आप पूरी तरह तैयार है क्योंकि ExtJS आप के लिए सेटर और गेटर के साथ-साथ सेटर पैदा करेगा चाहिए। आपके विचार मॉडल में सुनिश्चित करें कि आपके एक:

data: { 
    serverPath : 'yourPathGoesHere' 
} 

संपादित वहाँ दो चीजें हैं जो लापता हैं कर रहे हैं:

  1. ViewModel पर एक मूल्य बदल दे परिवर्तन एसिंक्रोनस रूप से प्रकाशित कर रहे हैं अनुसूचक। यदि आप चाहते हैं कि परिवर्तन immidiatly परिलक्षित हो, तो आपको ViewModel पर अधिसूचना का उपयोग करने की आवश्यकता है या परिवर्तन के बाद तर्क को हटा दें।
  2. परिवर्तनों के व्यूमोडेल को वापस सूचित करने के लिए कक्षा के कस्टम कॉन्फ़िगरेशन गुण प्राप्त करने के लिए आपको उन्हें 'प्रकाशित' कॉन्फ़िगरेशन संपत्ति में जोड़ने की आवश्यकता है। कृपया यह updated fiddle देखें।
+0

मैं अपने सुझाव की कोशिश की है, और पता चला है कि यह काम नहीं किया खेद है। – happyyangyuan

+0

हाय, अगर आप किसी प्रकार का जेएसएफडल/सेन्चा फीडल प्रदान कर सकते हैं तो यह बहुत अच्छा होगा, इसलिए मैं बेहतर ढंग से पुनर्निर्मित कर सकता हूं और संभवतः इस मुद्दे के साथ मदद कर सकता हूं। –

+0

हाय, आपके लिए बहुत अधिक थक्स। पूरा मुद्दा यहां है: https://github.com/happyyangyuan/Q-A/issues/1 – happyyangyuan

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