如何使用类型处理程序和RemoteObject创建元素后执行函数?

时间:2016-01-19 16:07:02

标签: eclipse-rap

我想执行函数`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
}

1 个答案:

答案 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