我正在努力理解,并且没有找到与我要实现的目标完全匹配的示例。带有一个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) {
我能正确地假设我只需要在自己的视图控制器中拥有这样的调用吗?
抱歉,这似乎很基础,但是所有演示和文档似乎都接近我想要的内容,但不完全相同。节日快乐!
答案 0 :(得分:2)
使用FunctionFile
FunctionFile指定用于加载项通过执行JavaScript功能而不显示UI的加载项命令(功能区按钮)公开的操作的源代码文件。 加载项可以决定在任务窗格中显示一些UI或在后台执行javascript函数。对于UI-less add-ins,您将必须指定一个FunctionFile。
在您的情况下,FunctionFile
可以忽略。
使用Office.initialize
Office加载项包括Office.js库,并且该库希望您的启动代码在库完全加载之前不调用任何API。您的代码可以通过两种方式来确保库已加载。
示例:
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。