Dojo:使用声明性组合框与程序化jsonreststore

时间:2012-06-06 06:42:33

标签: dojo

这是我的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" ...

2 个答案:

答案 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>