2

私はこれをやろうとしています:

...
store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
...

しかし、取得:

...    
store: 'ZAdmin.store.TreeFactory.create(\'ZAdmin.model.Category\', \'Application\\Entity\\Category\')'
...

ストアを文字列からオブジェクトタイプに変更する方法はありません。

それを修正する方法は?

PS私はGUIで設定プロパティを編集しようとしています。Sencha Architectは、storeを文字列と見なすため、任意の値を自動エスケープします。

4

2 に答える 2

0

store configはstoreオブジェクトまたはその名前を取得するため、オブジェクトを渡す場合は、オブジェクトをインプレースで作成するか、initializeメソッドで次のように実行できます。

var myStore = ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category'); // Any kind of store creation
this.setStore(myStore);
myStore.load();   // Optional

ストアの関連付け/ロードが遅いと、データのロードを待たずにビューをすばやく表示できるという利点があります。

于 2013-01-28T10:33:04.630 に答える
0

定義で初期化を維持したい場合は、オブジェクトのオーバーライドクラスを作成するのが最善の策です。つまり、コード編集ウィンドウの上部にある[オーバーライドの作成]ボタンを押してから、構成の下に独自の初期化コードを入力します。たとえば、データビューオブジェクトのストアをこのように設定する場合は、次のようなコードを使用してデータビューのオーバーライドを作成します。

Ext.define('MyApp.view.MyDataView', {
extend: 'Ext.dataview.DataView',

config: {
    store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
}
});

この方法でコントロールをオーバーライドできるようにするには、最初にコントロールをクラスに昇格させる必要があります(コントロールを右クリック->クラスに昇格->新しく作成されたクラスのオーバーライドを作成)。

于 2013-01-28T17:51:37.963 に答える