2012-02-13 24 views

cevap

47

Şahsen, mümkün olduğu kadar EXT-MVC olarak tutmak için, Statik yöntemlerle dolu bir Yardımcı Programlar sınıfına sahibim. Bu, bağımlılık ilişkilerini sürdürmek için başka herhangi bir sınıf gibi istenebilir. Bu ayrıca yöntemlerin bir EXT ortamında çalıştırılmasını sağlar, böylece tüm EXT kullanılabilir.

Ext.define('MyApp.Utilities', { 
    statics: { 
     foo: function (a, b) { 
      return a + b; 
     } 
    } 
}); 

Ext.define('MyApp.MyView', { 
    extends: 'Ext.panel.Panel', 
    requires: ['MyApp.Utilities'], 

    initComponent: function() { 
     MyApp.Utilities.foo(1, 2); 
    } 
}); 
+0

Fikrinizin küçük bir örneğini verebilir misiniz? –

+0

Cevabım için bazı kodları ekledim, yardım ederse bana bildirin. –

+2

"Utilities.foo" işlevi "MyApp.Utilities.foo" değil mi? – JohnnyHK

4

@David Kanarek'in statiği yaklaşımı dışındaki alternatif bir yol, bir tekil tanımlamaktır. Kodlar:

Ext.define('MyApp.Utilities2', { 
    singleton: true, 
    global_var2: 'Hello World', 
    foo2: function (a, b) { 
     return a + b; 
    }, 
}); 

Burada bir keman oluşturduk: https://fiddle.sencha.com/#fiddle/qu1

statiği ve tekil bir yaklaşım arasındaki fark

  • MyApp.Utilities2 (tekil yaklaşım) bir nesne olmasıdır,
  • MyApp.Utilities (statics yaklaşımı) bir sınıftır.

Bu nedenle, sınıfın kendisine başvurmak veya uygunluk açısından o sınıfın bir örneğine başvurmak size kalmış.