2012-09-10 68 views
2

你好,我已经找到了用我的数据库中的数据填充组合框的最佳方法。我以这种方式尝试过,但我认为有更好的方法可以在JavaScript中实现。以编程方式填充组合框dojo(1.8)的最佳方法是什么?

谢谢大家

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 
} 

回答

1

您可以使用Array slice methodclone 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)); 
}); 

请注意,您也可以直接使用JsonRest存储与ComboBox,如果您的REST服务器支持。看看它如何与fakeServer合作sinon.js在这个jsFiddle:http://jsfiddle.net/phusick/N8DqG/

0

假设你的情况,那家商店是ItemFileWriteStore,将以下代码:

json = new Array(); 
       for(i in data){ 
        item = { 
         name: data[i].nome, 
         id: data[i].id 
        } 
        json[i] = item; 
       } 
       store .setData(json); 

与商店的newitem API如下图所示

  for(i in data){ 
       item = { 
        store.newItem({id: data[i].id, name: data[i].name}); 
       } 
      } 

同样,有从商店中删除商品的API。

store.deleteItem(item); 
相关问题