Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Office.js:如何从';s由angular CLI生成_Javascript_Angular_Typescript_Angular Cli_Office Js - Fatal编程技术网

Javascript Office.js:如何从';s由angular CLI生成

Javascript Office.js:如何从';s由angular CLI生成,javascript,angular,typescript,angular-cli,office-js,Javascript,Angular,Typescript,Angular Cli,Office Js,我使用angular cli创建了一个新项目,并向该项目添加了ng office ui结构和依赖项。我添加了index.html,并将polyfills添加到angular.json,一切都很好 总之,我可以很好地侧载外接程序,并且我创建的任务窗格可以加载并正常工作 但是在清单中有一个函数文件,它允许功能区上的按钮直接从function-file.html调用javascript函数。我可以将js和html文件作为资产添加到项目中,但我想用TS而不是js编程。我认为在项目中添加一个页面以及在该组

我使用angular cli创建了一个新项目,并向该项目添加了ng office ui结构和依赖项。我添加了index.html,并将polyfills添加到angular.json,一切都很好

总之,我可以很好地侧载外接程序,并且我创建的任务窗格可以加载并正常工作

但是在清单中有一个函数文件,它允许功能区上的按钮直接从function-file.html调用javascript函数。我可以将js和html文件作为资产添加到项目中,但我想用TS而不是js编程。我认为在项目中添加一个页面以及在该组件中定义函数也应该起作用。但是将该页面作为functionfile添加到清单中似乎不起作用


所以我的问题是,如果office.js能够从一个单独的html文件调用javascript函数,我将如何从我用typescript编写的组件在一个路由角度页面上发布相同的函数?我需要将其导出到任何地方吗?是不是装货晚了?为什么不起作用?还是应该在main.ts中定义这些函数

从功能区按钮打开的function-file.html将在任务窗格中的一个完全独立的Internet Explorer实例中打开,从而形成一个完全独立的JavaScript引擎、执行上下文和会话。他们甚至不共享会话存储。它们之间只能通过本地存储或一些常见的服务器端数据存储进行通信

对于具有自定义功能区按钮的Office加载项使用单页框架时,基本上有两种选择:

(1) 与单纯的单页设计不同,创建一个页面并将其功能单独作为按钮的启动目标。实际上,这是一个单独的应用程序,与主单页应用程序托管在同一个域中。为了简单起见,我推荐这个选项


(2) 包括希望功能区在主应用程序中启动的功能,并为其指定路线。使用路由作为应用程序清单中函数的URL。但请注意,如果执行此操作,则会在功能区按钮启动的IE实例中加载单页应用程序的完整第二个实例。应用程序的启动逻辑必须设计为,当通过特殊路线启动时,它不会尝试加载将在任务窗格中加载的标准启动视图

这是功能文件上的Microsoft文档。如前所述,如何将其放在单页cli页面中。我宁愿有一个单一的项目和两种类型的功能网站。所以在我的清单中,我有
MyFun
函数文件指向
https://mysite/#/functions
。我的应用程序初始化与对象办公室的存在无关,因此我可以在浏览器中连接到mysite/#/函数。所以这条路线是可行的。但在办公室里,按下按钮根本没有效果。我假设MyFun函数应该在组件内部,就像从页面上的按钮调用它一样,对吗?我该如何调试它?@kjoetools我现在也有同样的问题。你有解决这个问题的办法吗?