0

我正在尝试使用 onload 事件从服务器调用我的 json 对象并将它们放在标题窗格中。目前我只是想从数据库中取出一个对象。但是,我在控制台上不断收到此错误:

  dojo/parser::parse() error SyntaxError {} 

它突出显示了 parser.js 文件第 411 行。

这是一个片段:

<div data-dojo-props="title: 'Json is here', open:false" data-dojo-type="dijit/TitlePane" id="tab"  onload= " dojo.require('dijit/TitlePane');

    dojo.xhrGet({
    url: 'http://171.23.34:3000/page.json',
    handleAs: 'json',
    timeout : 2000,

    load: function(data){

    dojo.byId('tab').innerHTML = data[0].Name;
     dojo.parser.parse('tab');

},
error: function(error){
    dojo.byId('tab').innerHTML = "An unexpected error occurred:" + error;
}
}



});"
preload="true" selected="true" >

</div>

如果我这样做完全错误,有人可以阐明一下吗?

4

1 回答 1

1

您已经定义了一个 html 属性onLoad="...",并且在 onload 函数中您有以下内容:

 dojo.byId('tab').innerHTML = "An unexpected error occurred:" + error;

此行中的第一个引号关闭 HTML 中的 onLoad 属性,并且该函数的其余部分被解析为 html 并失败。

尝试将您的 onload 方法放在声明性脚本标记中。

http://dojotoolkit.org/reference-guide/1.8/dojo/parser.html#declarative-scripting-arguments

编辑

除了更改为单引号外,您的函数中还有一个额外的右大括号。

dojo.xhrGet({
    url: 'http://171.23.34:3000/page.json',
    handleAs: 'json',
    timeout : 2000,

    load: function(data){
        dojo.byId('tab').innerHTML = data[0].Name;
        dojo.parser.parse('tab');

    },
    error: function(error){
        dojo.byId('tab').innerHTML = 'An unexpected error occurred:' + error;
    }
    //} <-- extra brace
});
于 2013-01-28T19:43:55.720 回答