以下のコードでは、レコードを手動でストアに追加します(dataStore
)。私は(cmb
ラベル)コンボボックスにストアをロードしようとする。しかし、私は次のエラーを取得:ストアがデータをロードするためにプロキシを呼び出すようにしようとしているかのようにExtJS:ストアをコンボボックスに接続していますか?
http://localhost:1841/CurrencyConvert.model.CurrencyCode?_dc=147hj_126&query=&page=1&start=0&limit=25 404 (Not Found)
をそれが表示されます(それが持っているにもかかわらず、すべてのデータはすでに手動でロードされています)。以下は、ストアです:
Ext.define('CurrencyConvert.store.CurrencyCode', {
extend : 'Ext.data.Store',
model : 'CurrencyConvert.model.CurrencyCode',
storeId : 'currencyCode',
addRate : function(currencyCode, currencyRate) {
this.add({
code : currencyCode,
rate : currencyRate
});
}
});
そしてストアが使用されているAjaxリクエスト:
{
"success":true,
"terms":"https:\/\/currencylayer.com\/terms",
"privacy":"https:\/\/currencylayer.com\/privacy",
"timestamp":1475354167,
"source":"USD",
"quotes":{
"USDAED":3.672904,
"USDAFN":65.550003,
"USDALL":122.239998,
"USDAMD":473.959991,
"USDANG":1.770403,
"USDAOA":165.067001,
"USDARS":15.250402,
"USDAUD":1.304104,
"USDAWG":1.79,
"USDAZN":1.620604,
"USDBAM":1.742204,
"USDBBD":2,
"USDBDT":78.430401,
"USDBGN":1.752404,
"USDBHD":0.377041,
"USDBIF":1651,
"USDBMD":1,
"USDBND":1.362804,
"USDBOB":6.860399,
"USDZAR":13.710364,
"USDZMK":5156.103593,
"USDZMW":10.020363,
"USDZWL":322.355011
}
}
EDIT:ストアの定義を以下の
Ext.Ajax.request({
url : 'data.json',
method : 'GET',
dataType: 'currency.json',
item : cmb,
success: function(response)
{
console.log('Success');
var result = Ext.JSON.decode(response.responseText);
var currencyCodes = Object.keys(result.quotes);
this.dataStore = Ext.create('CurrencyConvert.store.CurrencyCode', {});
for(var x = 0; x < currencyCodes.length; x++)
{
this.dataStore.addRate(currencyCodes[x], result.quotes[currencyCodes[x]]);
console.log(this.dataStore.getAt(x).get('code') + " : " + this.dataStore.getAt(x).get('rate'));
}
cmb.emptyText = "-Chose Currency-";
cmb.store = this.dataStore;
console.log("Stuff: " + this.dataStore.getAt(2).get('code') + " : " + this.dataStore.getAt(2).get('rate'));
cmb.displayField = 'code';
cmb.valueField = 'code';
},
failure: function(response) {
console.log('Failed!');
console.log(response);
},
});
は私がフェッチしていたサンプルデータです
Ext.define('CurrencyConvert.model.CurrencyCode', {
extend : 'Ext.data.Model',
pageSize: 0,
fields : [
{
name : 'code',
value : 'string'
},
{
name : 'rate',
value : 'float',
}
]
});
が含まれます。ストアは私のAjax関数(それぞれのインデックスにデータがあることを示すconsole.logの表示)では正しくロードされますが、コンボボックスにストアを接続すると、このエラーが表示されます。私は上記のモデルの私の定義を追加しました。それ以上の提案があれば幸いです。 –