在Appmaker中动态加载下拉值

时间:2018-04-19 11:48:00

标签: google-app-maker

我有一个用例,我需要在下拉列表中显示用户的团队驱动器名称,我已经完成了一个代码来获取用户的团队驱动器名称,但是我无法在动态下载中加载这些值。 / 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();  
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您的客户端脚本函数fetchValues返回undefined,您可以使用开发工具控制台对其进行测试:

console.log(fetchValues());

由于客户端(浏览器)和服务器之间的通信异步性而发生这种情况(您可以了解更多herehere)。修复当前代码的最简单,最直接的方法是更改​​绑定:

fetchValues(@widget);

并将您的功能更改为此

function fetchValues(dropdown) {
  google.script.run
    .withFailureHandler(function(error) {
      ...
    })
    .withSuccessHandler(function(result) {
      dropdown.options = result;
    })
    .fetchValues();  
}

但总的来说,它似乎不是在App Maker中填充下拉列表optionsnames的正确方法。我会考虑使用Calculated ModelCustom Properties

重新处理此部分