1

我有一个使用 JSON 源填充组合框的应用程序。HTML 如下......

<label for="user">User: </label>
<input dojoType="dijit.form.ComboBox" class="selectionNav tableData" value="" name="user" id="sample/user">

来自样本/用户的 JSON”在这里......

{
"identifier": "user",
"label": "label",
"items": [
    {
        "user": null,
        "label": null
    },
    {
        "user": "Joe Wilkie",
        "label": "Joe Wilkie"
    }
  ]
}

在 dojo 1.7 之前,这就像一个冠军!升级道场后,我在萤火虫中注意到 JSON 仍然可以正常获取并且有效,但它不再填充组合框。

任何人都知道如何解决这个问题?提前谢谢了。珍妮

4

1 回答 1

1

ComboBox 上的默认搜索属性是名称,它不在商店中。添加searchAttr到组合框中。

<input dojoType="dijit.form.ComboBox" searchAttr="label" ...

这是我的完整测试代码:

<!DOCTYPE html>
<html >
<head>

    <link rel="stylesheet" type="text/css" href="dojo/1.7.2/dijit/themes/claro/claro.css" />
    <style type="text/css">html, body {
        width: 100%;
        height: 100%;
        margin: 0;
    }</style>
    <script src="dojo/1.7.2/dojo/dojo.js" data-dojo-config="parseOnLoad: true"></script>
    <script>require(["dojo/ready", "dojo/data/ItemFileReadStore", "dijit/form/ComboBox"], 

    function(ready, Store, ComboBox) {
      ready(function() {
        var store = new Store({data: {
          "identifier": "user",
          "label": "label",
          "items": [
              {
                  "user": null,
                  "label": null
              },
              {
                  "user": "Joe Wilkie",
                  "label": "Joe Wilkie"
              }
            ]
        }});

    dijit.byId('user').set('store', store);
  });
});
</script>
</head>
<body class="claro">
    <label for="user">User: </label>
    <input dojoType="dijit.form.ComboBox" searchAttr="label" class="selectionNav tableData" value="" name="user" id="user" />        
</body>
</html>
于 2012-04-20T18:50:09.630 回答