2012-03-23 9 views
6

ExtJS İşlemleri kavramını gerçekten çok seviyorum. Ben at this example baktım ve (neredeyse) tam olarak ne ihtiyacım var. Tek şey, MVC desenini kullanmaya çalışıyorum. Ben:ExtJS Action, MVC şablonuna uyum sağlar

  • invoicelist (görünüm)
  • inovice (kontrolör)
  • Fatura (model)
  • Faturalar (mağaza)

ve nasıl Eylem tanımını koymak do ? Kontrolörde olmalılar mı? Onları nasıl çağırır ve onlara nasıl başvurulur? Çeşitli İşlemlere ihtiyacım var ve bunlar bağlam menüsünde ve invoicelist araç çubuğunda menüde olacaklar.

cevap

6

İyi soru. Görünüşe göre Eylemler ve Denetleyici paradigmalarını bir çatı altında birleştirerek MVC şablonunu kırın. İşleyicileri oldukları için işlevselliklerini yanı sıra metin ve simgeler gibi kullanıcı arabirimi öğeleriyle birlikte taşırlar. Ancak onlar, bileşenler değil - kelimenin ExtJS anlamındadır. Bu yüzden onları bir seçici ile hedefleyemezsiniz.

Onları düşünmenin en iyi yolu bir yapılandırma nesnesidir. Ne fazla ne az. Bir yapılandırma nesnesi kendi başına anlamsızdır - ve hedeflenemez. Eylemler ile aynı. Örneğin, düğmelere bir yapılandırma nesnesi olarak kullanılabilirler.

Şimdi nereye gitmeli? Tahmin ettiğim cevap gerçekten bir tasarımcı olarak size kalmış. Kesin MVC modeline onay vermediklerinden, belirli bir eylemin ne kadar yaygın bir şekilde erişilebileceğine dayalı bir karar almanız gerekir. Birçok görünüm tarafından paylaşılan gerçekten genel bir eylem için, bunu uygulama yapılandırmasına koyabilirsiniz: Örneğin, MyApp.app.actions ["delete"]. Denetleyici, bu denetleyicinin birden fazla görünümü yapılandıracak ve bunları depolarla birlikte bağlayacağını belirtmek için iyi bir yer olabilir. Paylaşılan eylemlerle birden çok görünüm oluşturabilirler.

Bu yardımcı olur umarım. İyi şanslar :)

+0

Teşekkür yapmak. Şu anda tek bir görünümde kullanılacak bazı Eylemler oluşturmaya çalışıyorum. Araç çubuğu ve ızgara ile Pencere. İşlem, araç çubuğu alt menüsünde ve kullanıcı, ızgara satırında sağ tıklandığında içerik menüsünde görünecektir. Bu senaryo için, bu Pencere için Kontrolöre koymam gerektiğine inanıyorum, değil mi? Nasıl? Olayları denetleyiciden görüntülemeye, ancak UI'deki nesneleri INSERT nasıl yapacağını bilmiyorum. – Milan

+0

Yaptığım şey, görüntüleme sınıfınızda eylemler oluşturmak ve eylem işleyicilerinin bazı özel olayları tetiklemesini sağlamaktır. Denetleyici sınıfınızda, görünümünüzden yayılan özel etkinlikleri dinleyebilirsiniz. – dbrin

+0

Özel olayları eylemlerden çıkarmak için kullanılan kod snippet'i çok takdir edilecektir. – Milan

1

sadece someview.fireEvent('Yourcustomevent');