Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 在AngularJS应用程序中使用Office ribbon命令的最佳方式是什么_Javascript_Angularjs_Office365_Office Js - Fatal编程技术网

Javascript 在AngularJS应用程序中使用Office ribbon命令的最佳方式是什么

Javascript 在AngularJS应用程序中使用Office ribbon命令的最佳方式是什么,javascript,angularjs,office365,office-js,Javascript,Angularjs,Office365,Office Js,我有一个Office插件,它是在ASP.NETMVC4.5之上使用AngularJS(1.4)构建的。我已经在Angular controller和服务JS文件中实现了很多功能 最近,我开始试验Office功能区按钮和命令(JSAPI1.3)。我想从功能区按钮访问Angular文件($scope或service)中的JavaScript函数。最好的方法是什么?正如您可能已经发现的那样,Office JS API 1.3引入的外接程序命令(功能区按钮、菜单项)的设计使每个外接程序启动自己的执行上下

我有一个Office插件,它是在ASP.NETMVC4.5之上使用AngularJS(1.4)构建的。我已经在Angular controller和服务JS文件中实现了很多功能


最近,我开始试验Office功能区按钮和命令(JSAPI1.3)。我想从功能区按钮访问Angular文件($scope或service)中的JavaScript函数。最好的方法是什么?

正如您可能已经发现的那样,Office JS API 1.3引入的外接程序命令(功能区按钮、菜单项)的设计使每个外接程序启动自己的执行上下文并具有自己的全局(窗口)对象。无法直接从这些其他执行上下文访问任务窗格中主加载项应用程序的执行上下文


您可以尝试使用本地存储在两个上下文之间传递信息。这里有一个关于如何做到这一点的概述。基本上,外接程序命令会在localStorage中留下一条请求操作的消息。任务窗格应用程序响应存储事件,读取消息,并执行请求的操作。

最好的方法是使用一段完全符合您需要的代码。需要尽可能短的时间来创建。有/永远不会有任何bug。而且不需要维护。它还应该有最好的用户体验。以及完整的测试覆盖范围。是否要打开设置为特定URL的任务窗格?或者运行一个函数(什么类型?当前如何集成?)实际上,运行Angular控制器或服务中的JS函数。我可以通过$scope公开它们。