2011-05-29 14 views
9

Sencha Touch [nispeten yeni] MVC bitlerini kullanarak benim sevk aramaların% 90 gibi bir şey bulmak: gayetNeden doğrudan denetleyici kodunu çağırmak yerine Ext.dispatch kullanmalıyım?

Ext.dispatch({ 
    controller: "customers", 
    action: 'show', 
    record: record 
}); 

ve ben daha çok, ayrı kontrolör koduna akışını devrederek mi olayların karmaşık yollar daha ama henüz sadece böyle bir şey yaptığını karşısında hiçbir avantaj görmek için: daha kısa ve daha temiz olduğunu

controllers.customers.show({ 
    record: record 
}); 

. Ben sadece bunun için Ext.dispatch desen takip ediyorum gibi hissediyorum. Uygulamam, devlet için push/pop url geçmişinden yararlanmıyor ve bu daha karmaşık bir yaklaşımı kullanmak için görebilmemin tek nedeni bu.

Neyi eksik? Denetleyicileri aramak için Ext.dispatch kullanarak ne kazanırım?

cevap

9

Beforedispatch olayı, onları başka bir denetleyiciye yönlendirmeniz gerektiğinde kullanışlıdır.

Gönderimi kullanmak ayrıca, denetleyici kodunu sayfa yüklerken tek seferde gereken yerine yüklemeye izin verir. Uygulamamın açılış süresini yarı yarıya böldüm.

Uygulamanızın buna ihtiyaç duymadığını söylediniz, ancak historyUrl'yi ayarlayabilmek ve doğrudan sayfalara bağlantı kurabilmek, bence diğer kullanıcılar için ana avantaj olacaktır.

Bu yüzden hepsinin, uygulamayı kullanmanın mantıklı olup olmadığına bağlı olduğunu düşünüyorum.

+0

denetleyici kod JIT'i nasıl yüklediğinize veya bu konuyla ilgili bir eğiticiye nasıl bağlantı kurabileceğinizi daha ayrıntılı bir şekilde açıklayabilir misiniz? –

+0

@ TomášFejfar Ext.util.Dispatcher gönderim işlevini bir kapatma değişkenine kaydediyorum, ardından gönderimi kendi kodumla değiştiriyorum. Yeni fonksiyonun içinde, kontrol ünitesinin adını içermesi gereken gönderime geçen seçeneklere bakıyorum. Ext.ControllerManager.get bu ada sahip bir denetleyici döndürürse, özgün gönderim işlevini çağırırım. Diğer Ben denetleyici (yani "/ app/kontrolörleri/kullanıcıları") içeren betiği requireJS ile dinamik olarak yüklerim (herhangi bir benzer kütüphane yapar). Komut dosyası tamamlandığında, denetleyicim kayıt olmalı ve her zamanki gibi gönderim yapmalıyım. –

+0

BTW, bu 1.0 için yapıldı. Sencha touch 2.0, yöntemimi eskimiş yapabilir. –

İlgili konular