您是否可以指定/更改数据-dojo-attach-point的范围,而不是当前窗口小部件?
例如。我有一个名为parent的模板化小部件。在该模板中,我有另一个名为child1的小部件。嵌套在child1中,我有一些小部件。我想将这些嵌套的小部件绑定到child1而不是父级。
编辑:
<div data-dojo-type="someContainer" data-dojo-attach-point="parent">
<div data-dojo-type="somePane" data-dojo-attach-point="child1">
<span data-dojo-attach-point="(I want to be bound to somePane)"></span>
</div>
</div>
我想将“span”绑定到somePane,而不必通过someContainer。
答案 0 :(得分:0)
将范围分隔到它自己的小部件中,您可以像这样将它们添加到父级。
包含内容窗格的父模板
<div style="width: 100%; height: 100%;">
<div data-dojo-type="dijit/layout/LayoutContainer" style="width: 100%; height: 100%" data-dojo-attach-point="mainNode">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'" >
<div >
<!--some content-->
</div>
</div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" id="center">
<div data-dojo-attach-point="centerNode"></div>
</div>
</div>
</div>
在父窗口小部件的postCreate方法中,创建子窗口的新实例并将其附加到父窗口
define([
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dojo/text!./templates/Parent.html",
"somePath/childWidget",
'dojo/domReady!'
], function (
declare,
_WidgetBase,
_TemplatedMixin,
_WidgetsInTemplateMixin,
parentTemplate,
ChildWidget
) {
return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
templateString: parentTemplate,
postCreate: function () {
this.inherited(arguments);
var myChild = new ChildWidget();
myChild.placeAt(this.centerNode);
myChild.startup();
}
});
});
然后因为跨度位于它自己的小部件内,你可能有一个看起来像这样的模板
<div>
<span data-dojo-attach-point="spanNode"></span>
</div>
现在跨度附加点与父级分离。您可以直接参考&#39; spanNode&#39;从您为跨度创建的小部件中。
以声明, 在你的childWidget中包含你可以给出的范围给它一个像这样的类名
return declare("childWidget", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], { ...
在父模板中,而不是使用附加点来附加小部件,请使用data-dojo-type,如下所示
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" id="center">
<div data-dojo-type="childWidget"><!--child widget will get attached here--></div>
</div>