我有一个修改标签文本的问题,方法是调用一个函数(客户端脚本)来调用一个带有返回值的函数(服务器端)。
console.info(返回值)显示正确的值,但标签文本为空。 即使像这样返回==>返回"测试",它不起作用。
这是我为调试目的而创建的函数:
ClientScript:
function onSuccess(value) {
console.info("debug : " + value); // <== this works !
}
function TestFunction(value) {
// Call server side functions
google.script.run.withSuccessHandler(onSuccess).test("any value");
}
ServerScript:
function test(arg) {
return "This a return value";
}
标签文字中的绑定:
TestFunction("test")
你知道吗?我做错了什么?
编辑:由Chris询问,这是导出应用程序zip的链接:https://drive.google.com/file/d/1LEcEYtv0guC_ELicE9vFrY8AygJeVqWP/view?usp=sharing
答案 0 :(得分:2)
问题是您正在尝试直接从服务器脚本获取值。正如您所看到的,控制台日志正在运行,因为您正在 onSuccess 函数上将值传递给客户端。
您需要做的是将小部件传递给 TestFunction , onSuccess 函数应该进入测试功能。请考虑以下示例:
<强> ClientScript:强>
function TestFunction(widget, value) {
function onSuccess(value) {
console.info("debug : " + value);
widget.text = value;
}
// Call server side functions
google.script.run.withSuccessHandler(onSuccess).test(value);
}
<强> ServerScript:强>
function test(arg) {
return arg;
}
标签文字中的绑定:
TestFunction(@widget, "This is what I want")
我希望这有帮助!