Angular Office加载项:“找不到名称'Office'”

法典

我使用angular-cli创建了一个新的Angular项目,然后通过npm安装了Office TS定义,并将Office JS API CDN放在了index.html的标题中。但是,在我的main.ts中,当我调用Office.initialize = function(){};时。即使TS识别了名称空间,它也找不到名称“ Office”。有人知道我在做什么错吗?谢谢!

我一直在这里关注提示页面:https : //dev.office.com/docs/add-ins/develop/add-ins-with-angular2

如果要重现我的方案并安装Angular CLI,请执行以下操作:

ng new test
cd test
npm install –save-dev @types/office-js

然后打开您的项目目录,然后转到src / index.html。将此CDN添加到标题中:

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>

然后去src / main.ts

并对其进行更改,以使应用程序在初始化Office之前不会引导模块:

Office.initialize = function(){
  if (environment.production) {
    enableProdMode();
  }
  platformBrowserDynamic().bootstrapModule(AppModule);
};

更新

我可以通过使用以下命令在main.ts中使其工作:

declare const Office: any;

Office.initialize = function () {
  platformBrowserDynamic().bootstrapModule(AppModule);
};

但是,这仅在加载项在Office应用程序中侧加载时才有效。该模块似乎没有在浏览器中启动,只是说“正在加载...”。有没有一种方法可以将其加载到浏览器中以进行调试?我担心这将如何影响调试以及量角器,业力和茉莉花的任何E2E或单元测试。

Michael Zlatkovsky-微软

我建议您看一下Script Lab,这是一个最近发布的工具,也是一个开放源码的展示样本,它使用Angular 4,并且可以用来启发灵感。有关该项目播客中还讨论了一些基础技术

我们为脚本实验室所做的是为Office.js初始化创建一个Promise,并乐观地等待了几秒钟。如果没有收到,我们会显示一组按钮,以帮助用户选择是以Web模式启动还是以仍在外接程序中的方式启动(并希望获得最好的效果)。

另请参阅如何正确检查主机:Office,Office Online和Web浏览器

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章