2016-04-27 11 views
0

私は休憩室でお手伝いできますか?私は自分の店をRESTにしたい、HttpProxyが使われているサンプルを見て、同じことをやろうとしたが、うまくいかなかった。ExtJsをRESTに交換

サンプルストアで気づいたように、常にvar store = Ext.create ... これで問題が発生した場合は、どこでExt.createを呼び出すのかわかりませんでしたが、以前は常にstoreIdを使用していましたグリッドとそれはうまくいきました。

P.S.ブランクフィールドだけでストアデータなしでグリッドを作成できないのはなぜですか?

Ext.define('MVC.store.Notes', { 
extend : 'Ext.data.Store', 

requires : [ 
    'MVC.model.Note' 
], 

storeId : 'TestStore', 
model : 'MVC.model.Note', 
autoLoad: true, 
proxy: { 
    type: 'rest', 
    url: 'rest/notes', 
    reader: { 
     type: 'json', 
     rootProperty: 'data' 
    }, 
    writer: { 
     type: 'json' 
    } 
} 
}); 

とグリッド:ここ

が私の 'TestStore' のコードである

Ext.define('MVC.view.NotesGrid', { 
extend: 'Ext.grid.Panel', 
xtype: 'notesGrid', 

title: 'Note-list', 

// store: 'Notes', 
store: 'TestStore', 
columns: [ 
    { 
     text: 'Name', 
     dataIndex: 'name', 
     flex: 1 
    }, 
    { 
     text: 'Creation Date', 
     xtype: 'datecolumn', 
     format: 'd-m-Y', 
     dataIndex: 'createDate', 
     flex: 1 
    },{ 
     text: 'Last Modified', 
     xtype: 'datecolumn', 
     format: 'd-m-Y', 
     dataIndex: 'modifiedDate', 
     flex:1 
    }, { 
     text: 'Text', 
     dataIndex: 'noteText', 
     flex: 3 
    } 
] 
}); 
+0

コードスニペットから、なぜそれがうまくいかないのかわかりません。私は詳細が必要だと思います(たとえば、ブラウザのコンソールに表示されるエラーメッセージや、そのストアのインスタンスを作成する方法など)。 – Alexander

答えて

1

がメインの質問に答えていない、唯一のあなたの側の質問:

  • ときExt.define()ストア、あなたはクラスを定義します。
  • Ext.create()ストアを使用する場合、インスタンスを定義します。

クラスはデータを保持できません。インスタンスのみが保持できます。

メインApplication.jsファイルのアプリケーション定義のstoresアレイにストアのクラス名を追加する場合は、そのクラスのグローバルストアインスタンスを1つ作成するようアプリケーションに指示します。

固定ストアIDを持つストアクラスからは、アプリケーションごとに1つのインスタンスしか作成できません。固定されたstoreIdを持たないストアクラスからは、複数のインスタンス(たとえば、グリッドごとに1つ)を作成できます。

+0

お返事ありがとうございました。私はその前にそれを解決しました。問題はApplication.jsに正確にあった。今私はそれが動作する方法を知っています、ありがとう) – shagi