我有一个使用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之前,这就像一个冠军!在升级dojo之后,我在firebug中注意到JSON仍然正在被提取并且有效但它不再填充comboBox。
任何人都知道如何解决这个问题?提前谢谢了。 珍妮
答案 0 :(得分:1)
ComboBox上的默认搜索属性是name,它不在商店中。将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>