您好我已经找到了使用数据库中的数据填充组合框的最佳方法。我尝试过这种方式,但我认为有更好的方法可以在JavaScript中实现。
谢谢大家
var albumStore = new JsonRest({target:"/album", idAttribute:"id"});
var store = new Memory();
albumStore.query('').then(function(data) {
json = new Array();
for(i in data){
item = {
name: data[i].nome,
id: data[i].id
}
json[i] = item;
}
store .setData(json);
})
props = {
required : true,
missingMessage: 'campo obrigatório',
store: store
}
答案 0 :(得分:1)
您可以Array slice method使用clone arrays:
var restStore = new JsonRest({ target: "/album/", idProperty: "Key" });
var memoryStore = new Memory({ idProperty: "Key" });
restStore.query().then(function(response) {
memoryStore.setData(response.slice(0));
});
请注意,如果您的REST服务器支持JsonRest
,您也可以直接使用ComboBox
商店。在此jsFiddle查看fakeServer sinon.js的工作原理:http://jsfiddle.net/phusick/N8DqG/
答案 1 :(得分:0)
假设您的案例中的商店是ItemFileWriteStore,请替换以下代码:
json = new Array();
for(i in data){
item = {
name: data[i].nome,
id: data[i].id
}
json[i] = item;
}
store .setData(json);
使用store的newItem API,如下所示
for(i in data){
item = {
store.newItem({id: data[i].id, name: data[i].name});
}
}
同样,还有用于从商店中删除商品的API。
store.deleteItem(item);