是否可以将动态声明性代码插入到例如。一个borderContainer
?我有一个borderContainer
并希望将{center'内容替换为'/modules/example/example.php'
等文件的内容:(我已将输出打印到我的控制台)
<div data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center'" id="centerPanel">
<div data-dojo-type="dijit/layout/ContentPane" title="lala"> yeahh </div>
</div>
当我调用一个函数删除内容时,它没有错误。但是当我想添加动态内容时,我收到以下错误:Uncaught NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null.
。我想这是因为我没有真正定义元素(并且Dojo解析器必须解析代码)。
' add-declarative-dojo '的代码 - 函数:
require(["dojo/text!../modules/" + file], function(file){
console.log(file);
registry.byId(mainLayout).addChild(file);
});
是否有可能使这个工作?
答案 0 :(得分:1)
这实际上比您尝试做的更容易。 dijit/layout/ContentPane
窗口小部件是您在任何容器(dijit/layout/TabContainer
或dijit/layout/BorderContainer
)内使用的组件,实际上有一个名为href
的属性,您可以使用它。例如:
<div data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center'" id="centerPanel">
<div data-dojo-type="dijit/layout/ContentPane" title="lala" data-dojo-props="href: 'myPage.php'"> yeahh </div>
</div>
您的代码无效的原因可能是因为您将HTML页面传递给addChild()
函数,该函数只接受小部件,因为您可以在API docs中阅读。