我创建了一个返回textBox()的对象,该对象可以根据用户的操作更改其属性。但是,一旦我将函数doChange(e)作为这样的方法放入对象中:
function textBoxExt() {
...
this.doChange = function(e) {...}
...
}
我的代码返回错误:找不到函数 doChange()...
我尝试了不同的方法来将函数声明为对象中的方法,但没有一种奏效。请告诉我,我如何修改下面的代码以将 doChange(e) 作为方法在对象内部移动。处理程序调用的函数有可能吗?
var style = {
modified: {color: 'black', backgroundColor: 'yellow', },
};
function textBoxExt() {
var app = UiApp.getActiveApplication();
var changeHandler = app.createServerHandler('doChange');
var box = app.createTextBox();
box.addValueChangeHandler(changeHandler);
this.init = function(id) {
return box.setId(id);
}
}
var doChange = function(e){
var app = UiApp.getActiveApplication();
app.getElementById(e.parameter.source).setStyleAttributes(style.modified);
return app;
}
function doGet() {
var app = UiApp.createApplication();
app.add(new textBoxExt().init('box1').setText('text1'));
return app;
}
你不能
用汽油做到这一点。处理程序作为文本传递。此外,对象仅在当前处理程序期间存在,因此它不可能从以前的服务器调用附加到对象。