Sencha touch 是否在加载存储后立即将数据插入存储?
我创建了一个简单的应用程序,从json存储加载数据并将其绘制在屏幕上。我需要能够做的是添加到客户端的存储中(我不控制源数据)。因此,在store load:funciton()或main控制器中,如果还不太晚,我想在开头插入几行,这样这些记录就会出现在John、Paul、George和Ringo之前。我已经包含了我所有的Javascript,因此代码是完整的 雇员模型:Sencha touch 是否在加载存储后立即将数据插入存储?,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我创建了一个简单的应用程序,从json存储加载数据并将其绘制在屏幕上。我需要能够做的是添加到客户端的存储中(我不控制源数据)。因此,在store load:funciton()或main控制器中,如果还不太晚,我想在开头插入几行,这样这些记录就会出现在John、Paul、George和Ringo之前。我已经包含了我所有的Javascript,因此代码是完整的 雇员模型: Ext.define('Sencha.model.Employee', { extend: 'Ext.data.Mo
Ext.define('Sencha.model.Employee', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{
name: 'fullName',
type: 'string',
convert: function (value, record) {
firstName = record.data.firstName;
lastName = record.data.lastName;
fullName = firstName + " " + lastName;
return fullName;
}
}
]
},
load: function () {
console.log("Employee model");
this.callParent(arguments);
}
});
雇员商店:
Ext.define('Sencha.store.EmployeeStore', {
extend: 'Ext.data.Store',
requires: [],
config: {
model: 'Sencha.model.Employee',
autoLoad: true,
defaultRootProperty: 'items',
proxy: {
type: 'ajax',
url: 'employees.json',
reader: {
type: 'json',
rootProperty: 'items'
}
}
},
load: function () {
console.log("EmployeeStore");
this.callParent(arguments);
}
});
控制器:(尝试获取存储并打印值)
app.js:
Ext.Loader.setConfig({enabled: true});
Ext.application({
name: "Sencha",
models: ['Employee'],
stores: ['EmployeeStore'],
views: [],
controllers: ['MainController'],
launch: function () {
console.log("Launching");
var aList = Ext.create("Ext.List", {
fullscreen: true,
store: 'EmployeeStore',
itemTpl: "{lastName}, {firstName} - {fullName}"
});
Ext.Viewport.add(aList);
}
});
employees.json:
{"items": [
{ "firstName": "John", "lastName": "Lennon" },
{ "firstName": "Paul", "lastName": "McCartney" },
{ "firstName": "George", "lastName": "Harrison" },
{ "firstName": "Ringo", "lastName": "Starr" }
]}
将
自动加载
从存储区中取出,在启动函数中加载存储区,然后使用回调添加记录:
launch: function () {
var empStore = Ext.getStore('EmployeeStore');
empStore.load(function() {
empStore.insert(0, [ /*records to insert*/ ]);
});
}
将
自动加载
从存储区中取出,在启动函数中加载存储区,然后使用回调添加记录:
launch: function () {
var empStore = Ext.getStore('EmployeeStore');
empStore.load(function() {
empStore.insert(0, [ /*records to insert*/ ]);
});
}