gpt4 book ai didi

ajax - 响应 XhrPost 返回时,Dojo 小部件不呈现

转载 作者:行者123 更新时间:2023-12-02 00:40:52 25 4
gpt4 key购买 nike

我正在尝试在 Dijit 树小部件中捕获所选项目以呈现网页的剩余部分。下面是捕获所选项目并将其发送到 Django 后端的代码:

      <div dojoType="dijit.Tree" id="leftTree" store="leftTreeStore" childrenAttr="folders" query="{type:'folder'}" label="Explorer">
<script type="dojo/method" event="onClick" args="item">
alert("Execute of node " + termStore.getLabel(item));
var xhrArgs = {
url: "/load-the-center-part-of-page",
handleAs: "text",
postData: dojo.toJson(leftTreeStore.getLabel(item), true),
load: function(data) {
dojo.byId("centerPane").innerHTML = data;
//window.location = data;
},
error: function(error) {
dojo.byId("centerPane").innerHTML = "<p>Error in loading...</p>";
}
}
dojo.byId("centerPane").innerHTML = "<p>Loading...</p>";
var deferred = dojo.xhrPost(xhrArgs);
</script>
</div>

页面的其余部分包含带有 dojo 小部件的 HTML 代码。这是作为对选择项目事件的“响应”而发回的代码。这是一个片段:

<div dojoType="dijit.layout.TabContainer" id="tabs" jsId="tabs">
<div dojoType="dijit.layout.BorderContainer" title="Dashboard">
<div dojoType="dijit.layout.ContentPane" region="bottom">
first tab
</div>
</div>
<div dojoType="dijit.layout.BorderContainer" title="Compare">
<div dojoType="dijit.layout.ContentPane" region="bottom">
Second Tab
</div>
</div>
</div>

它呈现此 html“响应”但没有 dojo 小部件。 XhrPost 中的 handleAs: "text"是这里的罪魁祸首吗?

最佳答案

我的猜测是您的 Tabs 和 BorderContainer 没有高度。它们不会自动附加到父容器,您必须明确说明它们的大小。根据您注入(inject)内容的方式,dojo.parser.parse 部分是必需的,但如果“centerPane”是一个 ContentPane,您可以只使用 attr(“content”, response) 并为您完成解析。此外,所有 BorderContainer 都需要一个 region="center"(一),而您上面的代码片段都不包含一个。

关于ajax - 响应 XhrPost 返回时,Dojo 小部件不呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com