我对Sencha的触摸很新。我必须在列表中加载JSON数据。
我的Panel.js
Ext.define('MyApp.view.MyPanel', {
extend: 'Ext.Panel',
requires: [
'Ext.Toolbar',
'Ext.dataview.List',
'Ext.XTemplate'],
config: {
items: [{
xtype: 'toolbar',
docked: 'top',
title: 'Test'
}, {
xtype: 'list',
itemTpl: [
'\'<tpl for="polls">\',',
' \'<div> {title}</div>\',',
' \'<div> {uri}</div>\',',
'\'</tpl>\','],
store: 'MyStore'
}]
}
});
MyModel.js
Ext.define('MyApp.model.MyModel', {
extend: 'Ext.data.Model',
requires: [
'Ext.data.Field',
'Ext.data.proxy.JsonP'],
config: {
fields: [{
name: 'title'
}, {
name: 'uri'
}]
}
});
MyStore.js
Ext.define('MyApp.store.MyStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.MyModel',
'Ext.data.proxy.JsonP',
'Ext.data.reader.Json'],
config: {
autoLoad: true,
model: 'MyApp.model.MyModel',
storeId: 'MyStore',
proxy: {
type: 'jsonp',
url: 'my_web_site_url/polls',
reader: {
type: 'json',
rootProperty: 'polls'
}
}
}
});
JSON文件具有以下格式..
{
"polls": [
{
"title": "how r u?",
"uri": "/polls/answer1"
}
]
}
和my_web_site_url/polls/uri
会给你
{
"choices": [
{
"choice": "fine",
"votes": 0
},
{
"choice": "good",
"votes": 0
},
{
"choice": "sad",
"votes": 0
}
],
"title": "how r u?",
"uri": "/polls/answers1"
}
当我在Sencha Architect中尝试“加载数据”时,它会显示:
无法加载数据使用在浏览器中打开的提供的配置my_website_url / polls