Parsing Dojo contentpane/选项卡解析问题
我在将HTML标记解析为Dojo小部件时遇到问题。以下是我正在做的:Parsing Dojo contentpane/选项卡解析问题,parsing,tabs,widget,dojo,Parsing,Tabs,Widget,Dojo,我在将HTML标记解析为Dojo小部件时遇到问题。以下是我正在做的: var tab = new dijit.layout.ContentPane({ title: "xyz", parseOnLoad: false, //I am doing this intentionally href: "some-relative-url" }); tabPane.addChild(tab); 现在,如果我用parseOnLoad=true测试这个,我会很好地加载我的小部
var tab = new dijit.layout.ContentPane({
title: "xyz",
parseOnLoad: false, //I am doing this intentionally
href: "some-relative-url"
});
tabPane.addChild(tab);
现在,如果我用parseOnLoad=true测试这个,我会很好地加载我的小部件。然而,我试图在HTML变成小部件之前对其进行处理。因此,我通过添加parseOnLoad:false选项延迟了解析。我绑定了一个要在加载选项卡时调用的函数(即Ajax调用完成),如下所示:
dojo.connect (tab, "onDownloadEnd", myFunction);
function myFunction() {
//manipulate the HTML code via this.content
dojo.parser.parse(this); //this doesn't do anything. I tried many variations!
}
所以当我这样做的时候,结果是我加载了标签,但没有小部件,只有标准的HTML控件。那么,为什么在这个场景中没有触发解析器,我可以做些什么使它在我的被操纵的HTML上工作呢
谢谢
在该上下文中,此
可能是窗口
对象,因为您没有在连接中专门设置作用域(根据您发布的代码,我假设myFunction()
是一个自由函数,而不是一个方法
您需要传递dojo.parser.parse
一个DOM节点。假设tab
是一个小部件,您可以使用dojo.parser.parse(tab.domNode)
如果函数是在tab
的可用性上下文中定义的。如果this
的作用域是tab小部件,那么您可以使用dojo.parser.parse(this.domNode)
正如您在评论中所说
您可以使用强大的dojo.hitch
:)强制作用域。请阅读文档,我推荐。我不确定myFunction中的这个是DOM节点,我认为它必须用于parse()
才能执行任何操作。尝试dojo.parser.parse(this.get(“domNode”)代码>有趣的是,我只是尝试了一些类似的东西,但效果很好,但是没有足够的声誉来回答我自己的问题,所以我现在只能使用这里的评论。这对我有用:dojo.parser.parse(This.domNode);