而不是典型的自定义窗口小部件混合在_Templated中为它的标记,我想要一个只是混合在_Widget中的窗口小部件,然后执行xhrGet来获取标记。另外,这是我需要帮助的部分,我希望dojo在窗口小部件,连接节点和事件的上下文中解析dojoAttachPoint和dojoAttachEvent的xhr结果文本。
我为小部件尝试过的核心如下:
dojo.provide("com.example.widget.DynamicAttachedTemplate");
dojo.require("dijit._Widget");
dojo.require("dojo.html");
dojo.declare("com.example.widget.DynamicAttachedTemplate", [dijit._Widget], {
postCreate: function() {
dojo.xhrGet({
url: "/product/ajax/editTemplate",
content: { id: 1 },
handleAs: "text",
preventCache: true,
load: dojo.hitch(this, function(markup) {
// this only parses markup for dojoType it seems :(
dojo.html.set(this.srcNodeRef, markup, { parseContent: true });
},
error: function(error) {
alert(error);
}
});
},
submitHandler: function(event) {
dojo.stopEvent(event);
// handle validation, form submit, etc.
}
});
使用它的页面可能如下所示:
...
<div id="productEditContainer">
loading...
</div>
...
<script type="text/javascript">
dojo.addOnLoad(function() {
dojo.require("com.example.widget.DynamicAttachedTemplate");
new com.example.widget.DynamicAttachedTemplate({}, dojo.byId("productEditContainer"));
});
</script>
让我们说从/ product / ajax / editTemplate返回的标记?id = 1是这样的:
<form dojoAttachEvent="onsubmit: submitHandler">
...
</form>
最后,我希望xhr返回的模板标记中的dojoAttachEvent =“onsubmit:submitHandler”导致从表单提交连接到窗口小部件提交处理程序方法的事件。我也对更好的方法持开放态度,但是需要在服务器上生成小部件标记,我真的想利用dojoAttach *而不是使用DOM ID并通过小部件设置代码中的dojo.byId手动挂钩。
答案 0 :(得分:0)
考虑使用内联模板:http://www.sitepen.com/blog/2008/06/24/creating-dojo-widgets-with-inline-templates/
但是它需要_Templated
。