我一直在尝试获取多选菜单,以显示服务器脚本从AdminDirectory中检索到的用户列表。
到目前为止,我所拥有的是“多选”选项字段在客户端脚本中调用一个函数,该客户端函数获取用户的域名,调用一个服务器函数,该服务器函数将检索与该域关联的所有用户并返回一个数组用户全名。然后,客户端脚本将该数组返回到“多选”选项字段,并应将全名数组显示为可选选项,而不是显示为空白。
当我使用在客户端脚本中包含一些虚拟名称的虚拟数组进行测试时,它将正确显示,如果我在服务器脚本中测试了虚拟数组,它将无法显示。因此,据我所知,问题出在服务器脚本中,我猜这是由于从服务器脚本检索信息的延迟所致。
我只需要一种方法可以将当前应用程序用户域中的所有用户显示为多选列表,如果有人可以想出一种方法来修正我的流程,或者知道一种更简单的方法,那就是很棒!
这是我的参考代码:
function testingMultiSelectList(domain) {
var testArray = ['test 1', 'test 2', 'test 3'];
var array;
google.script.run.withSuccessHandler( function (result) {
array = result;
console.log("PRINT " + array);
return array;
}).withFailureHandler( function (result) {
console.log("FAILED!");
return array;
}).tryServerScript(domain);
//return testArray;
}
服务器脚本为:
function tryServerScript(domain) {
var users;
var getter;
var holder;
var listUsersNames = new Array(0);
getter = AdminDirectory.Users.list({
domain: domain,
orderBy: 'givenName',
maxResults: 100,
});
users = getter.users;
if (users) {
for (var x = 0; x < users.length; x++) {
holder = users[x].name.fullName;
console.log("Holder: " + holder);
listUsersNames.push(holder);
}
}
console.log("Users: " + listUsersNames);
return listUsersNames;
}