Office Web加载项:Office.initialize()函数

毛格说恢复莫妮卡

我正在努力理解,并且没有找到与我要实现的目标完全匹配的示例。上面有一个MS Outlook功能区图标,单击该图标将显示一个“对话框”。我玩了一个演示,扔掉了多余的功能,并开始使用Hello World-但它是JQuery,我想使用AngularJs来重用许多现有应用程序。

首先,该示例表明所有似乎都有类似

    <DesktopFormFactor>
      <FunctionFile resid="functionFile" />

这似乎是当用户单击功能区栏上的图标时调用的功能。如果我只是使用<script src=>标记来包含这样的函数文件,我是否可以假设我不需要它呢?

我的应用程序只有一个视图,因此在演示中,所有*.js文件都有类似的内容

// The Office initialize function must be run each time a new page is loaded
Office.initialize = function (reason) {

在我的唯一观点的控制器中,假设我只需要这样的调用一,是否正确?

抱歉,这似乎很基础,但是所有演示和文档似乎都接近我想要的内容,但不完全相同。节日快乐!

苏雷什·格瑟姆S

FunctionFile的使用

FunctionFile指定用于加载项通过执行JavaScript函数而不显示UI的加载项命令(功能区按钮)公开的操作的源代码文件。加载项可以决定在任务窗格中显示一些UI或在后台执行javascript函数。对于没有UI的加载项,您将必须指定一个FunctionFile。

在您的情况下,FunctionFile可以忽略。

使用Office.initialize

Office加载项包括Office.js库,并且该库希望您的启动代码在库完全加载之前不调用任何API。您的代码可以通过两种方式来确保库已加载。

  1. 使用Office.initialize:当Office.js库完全加载并准备好与用户进行交互时,会触发初始化事件。您可以为其分配处理程序。
  2. 使用Office.onReady:Office.onReady()是一个异步方法,该方法在检查Office.js库是否已完全加载时返回Promise对象。

例子:

Office.initialize = function () {
    // Office is ready
};

要么

Office.onReady(function(info) {
    if (info.host === Office.HostType.Outlook) {
        // Based on host, decide what to display.
    }
    if (info.platform === Office.PlatformType.PC) {
        // Make minor UI changes, if required.
    }
});

您可以使用一次initialize / onReady。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章