在 AngularJS 应用程序中使用 Office 功能区命令的最佳方式是什么

What is the best way to use Office ribbon commands with AngularJS app

我有一个 Office 加载项,它是在 ASP.NET MVC 4.5 之上使用 AngularJS (1.4) 构建的。我已经在 Angular 控制器和服务 JS 文件中实现了很多功能。

最近,我开始尝试使用 Office 功能区按钮和命令 (JS API 1.3)。我想通过功能区按钮访问 Angular 文件($scope 或服务)中的 JavaScript 函数。最好的方法是什么?

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

您可以尝试的一件事是使用本地存储在两个上下文之间传递信息。有关如何执行此操作的概述 Sharing data across windows using localStorage。基本上,您的 add-in 命令会在 localStorage 中留下一条消息,请求执行操作。您的任务窗格应用响应存储事件、读取消息并执行请求的操作。