在道场, 你可以有这样的效果。
<div id='outer' dojoType=OuterWidget>
<div dojoType=InnerWidget dojoAttachEvent='onmousein:_privateHandler, on...'>
</div>
</div>
但我的方案是,我想要像我那样列出我的应用程序小部件布局的声明性描述,但是让内部组件的mousein事件触发外部组件的处理程序。
我可能不得不求助于onmousein ='dijit.byId(“outer”)。outerHandler()' 但似乎dojo应该已经建立了一种方法来实现这一目标。
另外,在一个相关的not(如果有人知道如何做扩展点)我希望能够说内部元素的扩展点应该仅仅引用外部的一些处理程序。 (现在唯一的区别是我想将扩展点指向外部处理程序而不仅仅是本机DOM事件。)
我会真的感谢你们在这个方面提供的任何帮助:)
答案 0 :(得分:0)
Dijit对于实现容器包含关系的小部件有一个getParent方法,但它基本上会在DOM中查找一个带有Dijit Widget标记的节点(一个widgetid属性,IIRC)。一旦你建立了这种关系,你应该能够简单地做一些像dojo.connect这样的事情来将一个事件绑定到另一个事件。你最好避免使用id,因为它们是特定于实例的。这有点像使用全局变量。 / p>
答案 1 :(得分:0)
我发现这有效: 假设html代表父类的模板,它总是包含一个子项:
<div > // no id or dojoType specified in the parent's template:
<div dojoType='innerWidget' idOfWidgetThatShouldHandleMouseIn=${id}>
</div>
</div>
$ {id}将映射到的确切ID,无论 *实例*是否为父组件创建。