2013-08-01 15 views
5

sınıflara Ben Sencha'sı Mimarı kullanarak oluşturduğunuz bir model alt sınıfı istiyorum. Daha önce oluşturduğum BaseModel adlı bir modelim olduğunu varsayalım ve başka bir model oluşturmam gerekiyor, bunu BaseModel'i genişleten MyModel olarak adlandırıyorum. ExtJS ve Sencha Mimar içinSencha Mimar: bir model

// BaseModel.js 
Ext.define('MyApp.model.BaseModel', { 
    extend: 'Ext.data.Model', 

    fields: [...] 
}); 

ve

// MyModel.js 
Ext.define('MyApp.model.MyModel', { 
    extend: 'MyApp.model.BaseModel', 

    fields: [...] 
}); 

Ben yeni ama bu kodda yapmak ve uygun için çok önemli çok basit bir şeydir: kodunda, şöyle bir şey olmazdı Orada hayal ettiğim yazılım tasarımı bunu Mimar'da yapmanın bir yolu olmalı. Ne yazık ki bunu nasıl yapacağımı anlayamadım. bazen

burada açıklanan özellikler Toolbox desteklenen öğelerden sınıfların oluşturulmasını sağlayacak ederken: Bazı kazma sonra, Sencha'sı docs başlığı "Özel Dersler" altında aşağıdaki durumları http://docs.sencha.com/architect/2/#!/guide/classes, buldum Araç kutusunda görünmeyen başka bir sınıfı genişleten sade bir ebeveyn sınıfı veya bir sınıf oluşturmanız gerekebilir. Bunu, Araç Kutusu'ndaki Sınıf öğesini kullanarak Mimar'da yapabilirsiniz. Tamam

, umut verici sesler - bu yüzden bunu denedik. Proje müfettişinde artı işaretine bastım, "Sınıf" a ve "Model" isabetine girdim. Şimdi benim projemde özel bir Model sınıfına sahibim. Ben MyModel diyorum ve MyApp.model.BaseModel olmak için "genişlet" yapılandırmasını ayarlayın. Şimdi en azından kod doğru ve yukarıda sahip olduğum gibi görünüyor. Ancak, Mimar, Proje Müfettişimin "Model" bölümünde yer almasına ve BaseModel 'u genişletmesine rağmen MyModel sınıfının bir model olduğu konusunda hiçbir fikre sahip değildir. Belirttiğim "alanlar" gibi Model yapılandırma özelliklerinden hiçbiri yoktur ve MyModel'u herhangi bir Mağaza ile ilişkilendiremiyorum. Başka bir deyişle, Mimar MyModel'u tamamen özel bir sınıf olarak ele alır ve herhangi bir Model davranışını ortaya çıkarmaz. Bu temelde tamamen alt sınıflandırma yöntemini tamamen işe yaramaz hale getirir - Bir Model alt sınıfını oluşturabilirim ama sonra projemin herhangi bir yerinde bir model olarak kullanamıyorum, bu yüzden ne anlamı var?

Yani soru Ben Mimar gerçek model olarak MyModel tedavi etmek alabilirim nasıl? Bu, Mimar'da alt sınıfın doğru yolu değil mi? Ben sadece projeme başlıyorum ama modellerin, kontrolörlerin, mağazaların, vb. Çok sık alt sınıflara ihtiyaç duyduğumu öngörüyorum ve eğer bunu mimar ile yapamazsam ciddi bir sınırlama.

+0

nasıl çözülür ?? –

cevap

0

misin şeyleri yapıyorlar. Mimar şu anki haliyle 'işler' bu şekilde ama daha iyi sonuçlar vereceğini düşündüğüm başka bir şey var.

geleneksel modeli kullanılarak deneyin ve ben mimar kullanarak açısından bir anlaşma kırıcı olurdu aynı sorunu deneyimli xtype

+0

KullanıcıAlias'ı temel sınıfta mı kurmak mı yoksa türetmek mi istiyorsunuz? Temel/türetilmiş ilişki nasıl kurulur? – matejk

0

aka baz model üzerinde ayarlanmış bir userAlias ​​ile createAlias ​​kullanın. "Alanları", "hasMany" vb "vekil"

Sen:

Ben, özel bir sınıf oluşturulur mevcut modeli uzanan ve sonra yeni sınıfına özel özellikler oluşturarak etrafında çalışmak başardı özellikleri, Array veya Object yazacak şekilde ayarlayabilir ve daha sonra kod editöründeki alanları düzenlemenizi sağlar.

Bu bir model olarak sınıf tanımayan mimarı olarak mükemmel bir çözüm değildir ve dolayısıyla sürükleyip alanları vb olamazBununla birlikte, çıkarılan kod, yerel olarak oluşturulan bir modele sadıktır. Bu yardımcı olur

Umut, Ben