退房我創建的例子:。http://plnkr.co/edit/dGMJ8UBQ9dT3dGQPQSeu?p=preview
這是最簡單可行的解決方案,但它需要在FormA
幾個微小的變化:
FormA.js:
var FormA = declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
templateString: template,
templateExtensionString: "" // <= add `templateExtensionString` property
});
FormA.html - 添加templateExtensionString
佔位符到小部件模板:
<div>
<div><!-- FormA markup --></div>
<div>${!templateExtensionString}</div>
<div><!-- FormA markup --></div>
</div>
注意:爲了防止_TemplatedMixin
從字符串中的轉義引號中,在完整的變量名稱之前放置一個「!」。現在
可以延長FormA
:
var FormB = declare([FormA], {
templateExtensionString: template // FormB template (dojo/text!./FormB.html)
});
在這種情況下,你不能修改FormA
看看我的回答Dojo Dialog with confirmation button並考慮在這裏採用類似的策略。
感謝您花時間構建示例代碼。 – EricSonaron 2013-02-17 20:48:40