2016-09-26 89 views
2

最好的方式,我有一個Office加載,這是建立與ASP.NET MVC 4.5的頂AngularJS(1.4)。我已經在Angular控制器和服務JS文件中實現了很多功能。什麼是使用Office功能區的命令與AngularJS應用

最近,我開始與Office功能區按鈕和命令(JS API 1.3)進行試驗。我想從功能區按鈕訪問我的Angular文件($ scope或service)中的JavaScript函數。什麼是最好的方式來做到這一點?

+0

做到這一點,最好的辦法是有一段代碼,不正是你想要什麼。儘可能短時間創建。有/將永遠不會有任何錯誤。並且不需要維護。它應該也有最好的用戶體驗。並完成測試覆蓋。 https://en.wikipedia.org/wiki/SMART_criteria –

+0

您是否正在打開設置爲特定URL的任務窗格?或者運行一個函數(什麼類型?目前如何集成?) –

+0

實際上,運行Angular控制器或服務中的JS函數。我可以通過$ scope暴露他們。 –

回答

2

正如你可能已經發現,與Office JS API 1.3引入了加載命令(區按鈕,菜單項)被設計成每一個推出其自己的執行上下文,並擁有自己的全球(窗口)對象。無法從這些其他執行上下文直接訪問任務窗格中主要加載項應用程序的執行上下文。

有一兩件事你可以嘗試是使用本地存儲,可以在兩個上下文之間的信息。還有就是如何做到這一點Sharing data across windows using localStorage的概述。基本上,你的加載項命令在localStorage中留下一條消息請求一個動作。您的任務窗格應用程序響應存儲事件,讀取消息並執行請求的操作。