我想执行函数`doAfterCreation()?在CustomTextWidget实例创建之后。我怎么能这样做?
function CustomTextWidget(properties) {
var parent = rap.getObject(properties.parent);
this.textMask = properties.textMask;
this.maskedInput = document.createElement('input');
this.maskedInput.setAttribute('class', 'megaClass');
parent.append(this.maskedInput);
}
CustomTextWidget.prototype.setTextMask = function (data) {
this.textMask= data;
};
rap.registerTypeHandler('com.example.CustomTextWidget', {
factory: function(properties) {
return new CustomTextWidget(properties);
},
properties: ['textMask']
});
function doAfterCreation() {
// some code
}
答案 0 :(得分:2)
您可以尝试将您的函数注册为render
侦听器。在整个消息处理完毕后,将调用此侦听器,此时间点可能适合您的目的。为了只执行一次该函数,它应该在被调用时取消注册。
rap.registerTypeHandler('com.example.CustomTextWidget', {
factory: function(properties) {
rap.on('render', doAfterCreation);
return new CustomTextWidget(properties);
}
...
function doAfterCreation() {
rap.off('render', doAfterCreation);
// some code
}
有关详细信息,请查看Web Client Reference。