我创建了一个返回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;
}
答案 0 :(得分:0)
你不能用气体来做这件事。处理程序作为文本传递。除了对象只存在于当前处理程序中,因此它不能从先前的服务器调用附加到对象。