[英]Google Apps Script Popup Dialog, library issues
所以我有一個由幾十張工作表使用的庫,它調用如下的各個函數:
(來自菜單)
.addItem('What are the variables for this sheet', 'LibraryName.logMyVariables')
這一切都很好,但現在我遇到了一個問題,我似乎無法操作模態對話框。
這兩個部分工作正常:
.addItem('Show dialog (BETA)', 'LibraryName.showDialog')
(在圖書館方面,后端 gs)
function showDialog() {
var html = HtmlService.createHtmlOutputFromFile('projectDialog')
.setWidth(900)
.setHeight(900);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Project Update Thingy');
}
到目前為止,一切都很好。 我遇到問題的地方是庫腳本的前端對話框嘗試運行其填充編號 function 時。 雖然從擁有該庫的電子表格運行時它工作得很好,但我從運行該庫的其他電子表格中收到錯誤消息。
這是在對話框 html 中。
google.script.run.withSuccessHandler(addOptions).withFailureHandler(errorOutput).getExistingProjectNumbers();
我收到此錯誤:
google.script.run.withSuccessHandler(...).withFailureHandler(...).getExistingProjectNumbers 不是 userCodeAppPanel:2 的 function
我的直覺是,這意味着對話框在本地運行,所以我需要像調用其他庫函數一樣調用它(這會破壞它在實際庫上的工作,但我不在乎)所以我嘗試了:
google.script.run.withSuccessHandler(addOptions).withFailureHandler(errorOutput).LibraryName.getExistingProjectNumbers();
但這變成了這個錯誤
VM34:2 未捕獲的類型錯誤:無法讀取未定義的屬性“getExistingProjectNumbers”
我覺得我已經很接近了,我只需要更多的洞察力來解決這個問題。 讓我重申一下,這個 function 確實在庫腳本電子表格本身中運行得很好,只有當您通過庫訪問對話框時我才會遇到這個問題。
事實證明,運行庫的頁面只需要包裝函數。
我必須添加到本地頁面的只是四個這樣的功能
function getExistingProjectNumbers(){Library.getExistingProjectNumbers()}
我在一個隨機博客中找到了這個解決方案。 如果您有四個以上的函數,您可以通過將 function 作為參數傳遞給一個通用包裝器 function 來使其復雜化,但這對我來說更整潔且合理,因為 ui 僅使用 4 個后端函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.