我有一个用例,我需要在下拉列表中显示用户的团队驱动器名称,我已经完成了一个代码来获取用户的团队驱动器名称,但是我无法在动态下载中加载这些值。 / p>
在下拉小部件“options”标签中,我正在进行函数调用,它调用服务器来获取这些数据,服务器返回值。但是没有反映相同的数据。
这是我的代码段,
function fetchValues() {
google.script.run
.withFailureHandler(function(error) {
app.closeDialog();
setNotificationText(error);
app.popups.Snackbar.visible = true;
})
.withSuccessHandler(function(result) {
// This result has the list of team drive names.
return result;
})
.fetchValues();
}
答案 0 :(得分:1)
您的客户端脚本函数fetchValues
返回undefined
,您可以使用开发工具控制台对其进行测试:
console.log(fetchValues());
由于客户端(浏览器)和服务器之间的通信异步性而发生这种情况(您可以了解更多here和here)。修复当前代码的最简单,最直接的方法是更改绑定:
fetchValues(@widget);
并将您的功能更改为此
function fetchValues(dropdown) {
google.script.run
.withFailureHandler(function(error) {
...
})
.withSuccessHandler(function(result) {
dropdown.options = result;
})
.fetchValues();
}
但总的来说,它似乎不是在App Maker中填充下拉列表options
和names
的正确方法。我会考虑使用Calculated Model或Custom Properties