【问题标题】:What is the best way to populate the combobox dojo (1.8) programmatically?以编程方式填充组合框 dojo (1.8) 的最佳方法是什么?
【发布时间】:2012-09-03 20:42:01
【问题描述】:

您好,我已经找到了用我的数据库中的数据填充组合框的最佳方法。我尝试过这种方式,但我认为在 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
}

【问题讨论】:

    标签: javascript json dojo javascript-framework


    【解决方案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));
    });
    

    请注意,如果您的 REST 服务器支持,您也可以直接将 JsonRestComboBox 一起使用。在这个 jsFiddle 上查看它如何与 fakeServersinon.js 一起工作:http://jsfiddle.net/phusick/N8DqG/

    【讨论】:

      【解决方案2】:

      假设您的案例中的 store 是 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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-18
        • 2021-05-20
        • 2015-01-20
        • 1970-01-01
        • 2022-01-17
        • 2010-11-01
        • 2012-08-30
        • 1970-01-01
        相关资源
        最近更新 更多