2011-06-11 31 views
6

Zihni Sencha Touch'ın MVC çerçevesi etrafına sarmaya çalışıyorum ama birkaç farklı yaklaşım buluyorum. Birinde, here'da, SenchaCon 2010'da sunulan Sencha Touch uygulamalarının yapılandırılmasına yönelik bir yaklaşım var. Sencha Touch çalışanı olmanın ek ağırlığına sahiptir, ancak birkaç aylıktır. Diğer bir deyişle, Sencha Touch MVC'deki daha yeni yayınlarda, özel denetleyici yöntemlerini çağırmak için görünümlerde Ext.Dispatch'e güveniyor gibi görünen eğiticilerin (örneğin, here, Manning'in Sencha In Action Jay Garcia) var denetleyiciye, denetleyicinin farkında olmasını sağlayan ek elemanlar geçirme.Sencha Touch MVC Best Practices

Sorum bir Sench Dokunmatik MVC uygulamasını yapısının en iyi uygulama olarak kabul edildiği, nedir?

cevap

3

Denetleyicilerinizin görüntülenmesini sağlamanızı öneririz. Bir kontrolör gönderme olayı aldığında aşağıdakine benzer bir şey olmalıdır:

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

Bu, bir uzayda kontrolörleri görünümlerin her biri için "Ana" dinleyicileri tümüne sahip yararı vardır. Ayrıca, diğer denetleyicilerin görünümlerini yeniden kullanmak daha kolay hale gelir.

Görüşleriniz tüm bireysel bileşenleri ve onların olayları/dinleyiciye karmaşıklığı soyut yardımcı dinleyicileri sahip olmalıdır.

G/gizleme bir ana araç çubuğu gösteren veya arka düğmesi gösterme gibi küresel UI değişiklikleri için bir UI yöneticisini kullanın.

+0

-fs: Burada zaten bağlanmış github projesinden alınan bir örnek Denetleyicilerinizin çok fazla kabarmasına neden olur. – Ballsacian1

+0

Bilgi için teşekkürler. Denetleyicileri, olayları dinledikleri için çok duyarlı hale getirmenin çok anlamlı olduğunu kabul ediyorum. Touch'ın Ext JS'yi takip etmesi durumunda Ext.dispatch() öğesinin gidebileceğini de duydum: [link] (http://www.sencha.com/forum/showthread.php?137166-Sencha-Touch-MVC-Best- Uygulamalar) –

6

Benzer sorularım vardı. Sencha, görünüm bileşeni örnekleriniz için çok sayıda getter yaratmayı otomatik hale getirir. Çok kafa karıştırıcı.

Ben Sencha'sı dokunun 2.0 alınır ve bir örnek olarak bir araya komple MVC iskele uygulamasını koyduk. ExtJS 4.0 MVC mimarisini temel aldım. Bu Sencha Touch 2.0 Geliştirici Önizleme ile kutunun dışında çalışacak ve size zaman kazandırır.

https://github.com/FrancisShanahan/SenchaTouch2MVCHelloworld

özel soruya cevap vermek için, son ExtJS 4,0 MVC mimarisi kumandanın init etkinliği içinde görünüm bileşenlerinin örneklerine dinleyicileri kurar.

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'); 
     } 
    ... 

o selamlarımı yardımcı olursa haber verin Madem birden kontrolörleri bu won' içine uygulamayı kırmaya emin olarak

+0

Teşekkürler, bir göz atacağım! –

+0

Bunun sencha2-rc2'de kullanımdan kaldırıldığını unutmayın (Şub 2012). Denetleyicilerinde görünüm bildirirseniz, tüm görünümlerinizi Uygulama dosyasında bildirmeniz gerektiğini bildiren bir uyarı alırsınız. – widged

+0

Teşekkürler, genişledi; Sencha 2'de gördüğüm şeyi çok beğendim. –

İlgili konular