我使用Angular在Outlook加载项上工作。我在Windows的Outlook中遇到了一个错误,即在加载索引页面后,组件未加载。使用Chrome和Firefox的Outlook Web应用不会发生这种情况。
错误消息是:
SCRIPT5022: Office.js has not been fully loaded yet. Please try again
later or make sure to add your initialization code on the Office.initialize function.
polyfills.bundle.js (2741,25)
这是我的index.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import * as $ from 'jquery';
declare let Office:any;
function launch() {
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule)
.then((success: any) => {
console.log('SampleAddin: bootstrap success', success);
})
.catch((error: any) => {
console.log('SampleAddin: bootstrap error', error);
});
}
Office.initialize = reason => {
console.log('Office intialize.....');
$(document).ready(function () {
if (environment.production) {
enableProdMode();
}
launch();
});
}
回答我自己的问题:我无法在Outlook Mac和Windows中加载组件。但是将其添加到polyfills.ts:
import 'core-js/client/shim';
它也在IE 11中工作,看来这没有打破其他浏览器。
根据文档,
您必须使用office.onready()初始化一个加载项。
请参考文档
https://learn.microsoft.com/en-us/office/dev/add-ins/develop/initialize-add-in