Office 加载项 - Ribbon FunctionName 似乎不支持从 class 调用方法

Office add-in - Ribbon FunctionName does not seem to support calling a method from class

在功能区清单中,我可以声明单击功能区按钮时要执行的函数。例如,

      <Action xsi:type="ExecuteFunction">
          <FunctionName>doSomething</FunctionName>
      </Action>

但是,如果我有一个具有以下定义的打字稿文件:

   class MyFunctions {
        public static doSomething(){
           Office.context.ui.displayDialogAsync("https://localhost:44337/index.html",
           { height: 50, width: 50 }
        }
    }

以下将不起作用:

<Action xsi:type="ExecuteFunction">
    <FunctionName>MyFunctions.doSomething</FunctionName>
</Action>

就好像它无法识别清单文件中的点名,在本例中是 ClassName.FunctionName。

插件命令调用的函数目前必须是全局函数。在您的情况下,该函数不会执行,因为它被定义为 MyFunctions class.

的一部分

我们意识到允许您在此处描述的结构是有意义的,因此我们正在努力进行修复以在将来允许它。谢谢!

MyFunctions.doSomething 不起作用,因为 TypeScript 编译器将其转换为函数(即 typeof MyFunctions == 'function')

目前 Office 加载项清单仅支持:

  1. 执行全局函数
  2. 在"object"中执行一个成员函数。

因此,如果 MyFunctions 是一个对象,清单将起作用。这是一个例子:

var MyFunctions = {
    doSomething: function() {}
};

希望下一个版本能解决这个问题。谢谢