这是我的REST服务器的JSON:
[{ “名称”: “REL”},{ “名称”: “RBOW”},{ “名称”: “EMLAWEB”}]
这是JSON数据存储的编程创建:
dojo.addOnLoad(function(){
var appPrefixStore = new dojox.data.JsonRestStore({target:"http://localhost:9080/AtRest/AtRest/tag/prefix"});`
这是在comboxbox中以声明方式使用数据存储:
<input id="selectPrefixCombo"
name="appPrefix"
data-dojo-type="dijit.form.ComboxBox"
data-dojo-props="autocomplete:'false', trim:'true', maxHeight:'200', store:'appPrefixStore'">
</input>
然而,组合框中没有显示任何内容。是什么给了什么?
我甚至尝试过以声明方式使用数据存储:
<div data-dojo-type="dojo.data.JsonRestStore" ...
答案 0 :(得分:0)
谢谢,显然我可能被我见过的所有教程和示例误导了。
构造JsonRestStore不足以触发对服务器的请求。我必须添加appPrefixStore.fetch()
才能使其正常工作。
答案 1 :(得分:0)
无论如何......这是使用全局变量
的工作代码<script type="text/javascript">
//global variable container
var widgets = {};
require(
// Set of module identifiers
[ "dojo",
"dojo/parser",
"dojo/_base/xhr",
"dijit/form/ComboBox",
"dojo/store/JsonRest",
],
// Callback function, invoked on dependencies evaluation results
function(JsonRestStore) {
widgets.appPrefixStore = new dojo.store.JsonRest({target:"http://localhost:9080/AtRest/AtRest/tag/prefix"});
});
</script>
<select id="selectPrefixCombo" name="appPrefix" data-dojo-type="dijit.form.ComboBox"
data-dojo-props="autocomplete:'false', trim:'true', maxHeight:'200', store:widgets.appPrefixStore">
</select>