私はsenchatouchを初めて使用し、データの配列を解析しようとしています(これは珍しい使用例ではないようですが、オンラインでは何も見つかりません)。ネストされたjsonのsenchaext.data.reader.jsonドキュメントに従いましたが、機能しません。これが私のモデルです:検索結果(複数の検索結果を保持するため):
Ext.define('GS.model.SearchResults', {
extend: 'Ext.data.Model',
autoLoad: true,
config: {
fields: [
{name: 'query', type: 'string'},
],
hasMany : {model: 'SearchResult', name: 'results'},
}
});
そして検索結果、個別の検索結果を保持する
Ext.define('GS.model.SearchResult', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
belongsTo: 'SearchResults'
}
});
次に、私のコントローラーには、次のコードがあります。
var store = Ext.create('Ext.data.Store', {
autoLoad: "true",
model: "GS.model.SearchResults",
proxy:
{
type: 'ajax',
url : 'www.someurl.com/?query=somequery',
reader: {
type: 'json'
}
}
});
store.load({
callback: function() {
console.log("Done Loading");
var root = store.first();
console.log("Results for " + root.get('query')); //this prints correctly
console.log(root.results());//THIS IS THE LINE IM INTERESTED IN
console.log(root.raw.results);//this weirdly works
//now I want to print each search results name
root.results().each(function(result) {
console.log("Song: " + result.get('name'));
});
}
});
}
root.results()をログに記録すると、
Uncaught TypeError:オブジェクト[オブジェクトオブジェクト]にはメソッド'results'がありません
これはまさに彼らがドキュメントでそれを行う方法です、それで誰もがこれが機能しない理由を知っていますか?
編集:これが私がフォローしていたドキュメントです