0
我需要在初始化一個新小工具的任何時候爲特定的div添加一個自定義小部件。在特定節點上附加一個小工具
我相信最標準的方式是使用一些鏈接
(new MyFirstWidget()).placeAt('myDiv');
我不是真的熱衷這種方法,因爲它需要placeAt()
細節在每個初始化,並在我的情況,我需要給力的是小部件類型一直嵌套在特定的div中。
相反,我想在widget類中添加此信息。
目前我使用的是後面的代碼,在postCreate()
中使用placeAt()
工作正常。
我想知道:
- 是
postCreate()
正確的地方?在小部件生命週期中可以在更好的點 添加? - 我已經注意到,在
postCreate()
控件調用this.placeAt()
之前被標記爲rendered
的時候,居然還沒有 被渲染,因爲還沒有被添加到DOM又......爲什麼 是什麼?
define([
'dojo/_base/declare',
'dojo/dom-construct',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/text!./templates/PanelBasic.html'
], function (
declare,
domConstruct,
_WidgetBase,
_TemplatedMixin,
template
) {
'use strict';
var attachTo = 'myPanels';
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template,
ntvType: 'Panel',
constructor: function() {
},
postCreate: function() {
this.inherited(arguments);
this.placeAt(attachTo);
}
});
});
感謝您的回答,我添加了我的問題提到this.inherited() – GibboK
有用的文章https://dojotoolkit.org/documentation/tutorials/1.6/declare/ – GibboK
只是一個簡短的問題,不相關,它通常是在costructor()和this.preamble()中使用this.inherited(arguments)?感謝您的時間。 – GibboK