2011-06-11 10 views
6

मैं Sencha टच के MVC ढांचे के आसपास मेरे मन लपेटो करने की कोशिश कर रहा हूँ, लेकिन मैं अलग दृष्टिकोण की एक जोड़ी खोजने हूँ। एक में, here मिला, सेनचाकॉन 2010 में प्रस्तुत सेन्चा टच ऐप को संरचित करने का एक दृष्टिकोण है। इसमें सेन्चा टच कर्मचारी द्वारा जोड़ा जाने वाला वजन है, लेकिन यह कई महीने पुराना है। अन्य, Sencha टच MVC पर और हाल की पोस्ट में, वे (जैसे here के रूप में, साथ ही मैनिंग MEAP Sencha कार्रवाई में जे गार्सिया द्वारा) ट्यूटोरियल है कि विचारों में Ext.Dispatch पर भरोसा करने के लिए विशिष्ट नियंत्रक तरीकों कॉल करने के लिए लग रहे है, नियंत्रक को अतिरिक्त तत्व पास करना, जो विचार नियंत्रक-जागरूक बनाता है।Sencha टच MVC उत्तम आचरण

मेरा प्रश्न है जो एक Sench टच MVC अनुप्रयोग की संरचना करने के लिए सबसे अच्छा अभ्यास माना जाता है, है?

उत्तर

3

मैं आपके नियंत्रकों को जागरूक बनाने का सुझाव देता हूं। एक नियंत्रक एक प्रेषण घटना प्राप्त करता है जब आप निम्न जैसा कुछ होना चाहिए:

this.controllerViewOne = this.controllerViewOne 
         || this.render({ 
           xtype: 'panel', 
           listeners: { 
             onMajorUIAction : function(params){ 
              Ext.Dispatch({ 
               controller : 'ProperController', 
               action  : 'ProperAction', 
               historyUrl : 'ProperHistoryUrl', 
               params : params 
              }); 
             } 
           } 
          }); 

यह एक अंतरिक्ष में नियंत्रकों से प्रत्येक दृश्य के लिए "मुख्य" श्रोताओं के सभी होने का अतिरिक्त लाभ है। इसका मतलब यह भी है कि अन्य नियंत्रकों के लिए विचारों का पुन: उपयोग करना आसान हो जाता है।

आपके विचार सभी श्रोताओं कि सार अलग-अलग घटकों और उनके घटनाओं/श्रोताओं की जटिलताओं को मदद होनी चाहिए।

मैं छुपा/एक मुख्य उपकरण पट्टी दिखा या एक वापस बटन प्रदर्शित की तरह वैश्विक यूआई परिवर्तन के लिए एक यूआई प्रबंधक का उपयोग करें।

+0

-fs इतने लंबे समय के रूप में आप एकाधिक नियंत्रकों इस जीत 'में अपने आवेदन को तोड़ने के लिए सुनिश्चित करें आपके नियंत्रकों के बहुत अधिक थोक करने के कारण नहीं है। – Ballsacian1

+0

जानकारी के लिए धन्यवाद। मैं मानता हूं कि नियंत्रकों को यह पता चल जाता है कि वे घटनाओं के लिए सुन रहे हैं, बहुत समझ में आता है। मैंने यह भी सुना है कि Ext.dispatch() दूर जा सकता है, यदि टच का पालन करता है तो एक्सएस जेएस: [लिंक] (http://www.sencha.com/forum/showthread.php?137166- सेन्चा- टच- एमवीसी- बेस्ट- व्यवहार) –

6

मेरे समान प्रश्न थे। सेन्चा आपके व्यू घटक उदाहरणों के लिए बहुत से गेटर सृजन को स्वचालित करता है। यह बहुत भ्रमित है।

मैं Sencha टच 2.0 लिया और एक उदाहरण के रूप में एक साथ एक पूरा MVC पाड़ आवेदन डाल दिया है। मैंने इसे एक्स्टजेस 4.0 एमवीसी आर्किटेक्चर से बाहर कर दिया है। यह सेन्चा टच 2.0 डेवलपर पूर्वावलोकन के साथ बॉक्स से बाहर काम करेगा और आपको एक टन समय बचाएगा।

https://github.com/FrancisShanahan/SenchaTouch2MVCHelloworld

अपने विशिष्ट सवाल का जवाब करने के लिए, नवीनतम ExtJS 4.0 MVC वास्तुकला नियंत्रक के init घटना के भीतर दृश्य घटकों के उदाहरण के लिए श्रोताओं सेट करता है। यहाँ एक उदाहरण GitHub परियोजना पहले से लिंक से लिया है:

Ext.define('HelloWorld.controller.Home', { 
    extend: 'Ext.app.Controller', 
    views: ['Home', 'SimpleList'], 
    .. etc... 
    init: function() { 
     // Start listening for events on views 
     this.control({ 
       // example of listening to *all* button taps 
       'button': { 'tap': function() { 
      console.log('Every button says Hello world'); 
     } 
    ... 

मुझे पता है अगर यह मदद करता है, संबंध है,

+0

धन्यवाद, मैं एक नज़र डालूंगा! –

+0

ध्यान दें कि इसे सेनचा 2-आरसी 2 (फरवरी 2012) में बहिष्कृत कर दिया गया है। यदि आप नियंत्रकों में विचार घोषित करते हैं, तो आपको एक चेतावनी मिलती है कि आपको ऐप फ़ाइल में अपने सभी विचारों को घोषित करना चाहिए। – widged

+0

धन्यवाद, चौड़ा हुआ; मुझे लगता है कि मैं अब तक सेन्चा 2 में क्या देखता हूं। –