- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 UiApp 在电子表格中创建脚本时,我有一个带有服务器处理程序的按钮,该服务器处理程序以下划线结尾。如果我从电子表格中运行脚本,那么它工作正常,但如果我将这个项目添加到另一个工作表中并运行它,那么我会收到一条错误消息,指出找不到脚本函数。在代码中使用以下划线结尾的函数时,查找函数没有问题,似乎只是在从服务器处理程序调用它们时。
复制:
创建一个新的电子表格
插入代码:
function buildForm() {
var app = UiApp.createApplication();
// show that calling a function ending in underscore works
var labelText = getLabelText_();
app.add(app.createLabel(labelText).setId("label"));
var handler = app.createServerHandler("clickHere_");
app.add(app.createButton("Click Here",handler));
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.show(app);
}
// This is just to show that underscore on the end works as long as it is not a server handler
function getLabelText_() {
return "label text";
}
// called from server handler
function clickHere_(e) {
var app = UiApp.getActiveApplication();
app.getElementById("label").setText("You clicked there");
return app;
}
运行代码,看看它是否按预期工作
创建另一个电子表格,将第一个电子表格添加为库并将其命名为 MyCode。确保您已保存版本等。
在新的电子表格中,插入代码:
function runIt() {
MyCode.buildForm()
}
运行这段代码,注意 getLabelText_() 工作正常并创建了 UI,但是当您按下按钮时,会出现找不到函数的错误。
如果我从 clickHere_(e) 中删除下划线并相应地更改服务器处理程序,那么它就可以工作。
是否是从服务器处理程序调用的所有函数末尾删除下划线的唯一解决方案?
最佳答案
这是谷歌应用程序脚本库所需的组件:
https://developers.google.com/apps-script/guide_libraries#writingLibrary
这是为了实现私有(private)函数而设计的。
编辑:
正如文档中所说:
If you want one or more methods of your script to not be visible (nor usable) to your library users, you can end the name of the method with an underscore. For example, myPrivateMethod_()
作为“库函数”,function buildForm()
可以调用也在该库中的function getLabelText_()
。但是您不能使用该库从脚本中直接调用 function getLabelText_()
。您的脚本均无权直接调用 function clickHere_(e)
。
因此,当用作服务器处理程序时,函数 clickHere_(e)
是从脚本而不是库中调用的,它不会工作。要调用此函数,您应该删除其末尾的“_”并以这种方式调用它:libraryName.libraryFunction();
关于google-apps-script - Google Apps 脚本 - 错误 : script function not found when library used,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566059/
我看过有关 CocoaPods 的指南,建议像这样导入所需的 pod 的库 header : #import 在哪里Library是库的名称(例如 #import )。 我还看到指南建议像这样导入
我正在尝试创建一个包含其他库的 PHP 库,我敢打赌我遗漏了一些基本的东西。 使用 AWS PHP SDK作为指南,我想创建一个库,在使用 Composer 安装后,它需要其他库,但是类的整个范围(包
我正在为 Android 产品开发我的 gradle 版本,以使产品风格正常工作。 我有以下项目结构: at.mkw.inlocs.android - Library Project at.mkw.i
使用@testing-library/react-hooks 我过去常常通过initialProps 传递模拟存储,正如Advanced Hooks 中提到的那样文档。假设我有一个代码: import
我试图获得一个静态链接到我的程序的音频库。我用 this灵活的包。为了让它运行,我必须按照描述构建 soloud 库 here .下载后不久,我在“build”文件夹中运行了“genie --with
我刚刚安装了 zkcm library在我的 kubuntu 机器上,我在编译 C++ 代码时遇到了问题。 我已经安装了 gmp 和 mpfr 库并检查它们是否工作;代码 mpfr_t m1, m2,
我正在尝试编译我的 native 代码。这是我的 android.mk 文件 //part1-static lib LOCAL_PATH := $(call my-dir) include $(CLE
我正在开发一个带有沙丘的大型图书馆。让我们调用这个库L . 为了避免造成大困惑,沙丘项目有许多较小的库:A , B , C , ... 这些库相互依赖。 我希望用户能够 opam install L
在 unix 之上使用 C 语言工作,我正在加载和使用共享库,如下所示: ... handle = dlopen("nameOfLib"); ... libInit(); ... libGoToSta
我试图找出一种更简单的方法来为XCode中的链接器构建阶段复制/同步框架列表。我知道我可以在Xcode中复制目标,但这是用于创建新的Cocoa Touch Unit Testing Bundle目标。
例如/lib/的描述是它包含系统的共享库文件。 图书馆到底是什么?我们谈论的库文件是否类似于在 C 中导入库?库文件中包含什么以及它们的用途是什么? 它与.dll 有什么关系 最佳答案 库只是一个代码
我有这样的目录结构 . --compile_c.sh --compile_java.sh --config.sh --execute_java.sh --run.sh --src --ccode
我正在更新一些 Makefile 以从 Make 3.81 移动到 3.82。在多个地方,原作者使用了类似这样的东西来构建静态库: all: lib$(library).a($objects) 这似乎
我是 Rust 的新手,正在尝试了解 Cargo 的东西。我在他们的常见问题解答中读到关于 "why do binaries have Cargo.lock in version control, b
我正在尝试使用 Microsoft Enterprise Library 中的 DatabaseFactory 方法。 using Microsoft.Practices.EnterpriseLibr
我刚刚升级到Xcode 5.1,突然出现一个新警告: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctool
然后新的Enterprise Library 6出来了,可以是downloaded here .我已将 EnterpriseLibrary6-binaries.exe 下载并解压缩到我的 C: 驱动器
我正在尝试将 native 库与我的 Eclipse 插件捆绑在一起。当我提供库的路径时 -Djava.library.path ,它完美无缺。 但是,当我将它添加到 MANIFEST.MF 中时文件
在我的 Android Studio 项目中,我有两个子项目/模块:一个 Android 应用程序(App1)和一个 Android 库项目(LibraryProject1)。 App1取决于 Lib
我最近使用 Google 的 Closure 编译器创建了一个 JavaScript 库:https://github.com/bvaughn/task-runner 我打算让这个库供那些也需要完整闭
我是一名优秀的程序员,十分优秀!