Office任务窗格中的路由和导航

时间:2017-06-29 12:53:17

标签: javascript ms-office office-js office-addins office-app

我有一个带有angular-ui-router的平均堆栈站点,现在我想用服务器及其部分功能编写Office加载项,并与Office进行交互。

我看过add-in commands,它允许从功能区按钮转到某些页面。但任何人都可以告诉我,在任务窗格内部(例如,ui-viewui-router对于网站)实施导航(以及返回和转发)的最佳工具应该是什么。

例如,我们应该如何在以下任务窗格中实施navbar和导航?

enter image description here

此外,我已经看到一些加载项可以同时启动2个任务窗格(同一组中的2个功能区按钮)。我们可以在两个任务窗口之间切换,我们也可以同时并排显示它们。

有谁知道如何实现这个目标?

enter image description here

2 个答案:

答案 0 :(得分:1)

对于独立的任务窗格,您可以为清单中定义的每个// Listening for the device to be ready document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log("navigator.geolocation should be able to run successfully now..."); navigator.geolocation.getCurrentPosition(onSuccess,onError); } // onSuccess Callback var onSuccess = function(position) { // current GPS coordinates if(navigator.geolocation){ console.log('Geolocation is there '+ position); navigator.geolocation.getCurrentPosition(function(position) { alert('Latitude: ' + position.coords.latitude + '\n' + 'Longitude: ' + position.coords.longitude + '\n' + 'Altitude: ' + position.coords.altitude + '\n' + 'Accuracy: ' + position.coords.accuracy + '\n' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' + 'Heading: ' + position.coords.heading + '\n' + 'Speed: ' + position.coords.speed + '\n' + 'Timestamp: ' + position.timestamp + '\n'); }, function(error) { console.log('Error while connecting to geolocation ' + error) }, {timeout:10000}); } else { console.log('Geolocation is not there'); } } // onError Callback receives a PositionError object function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } 指定唯一的TaskpaneId。有关详细信息,请参阅manifest Action documentation请注意,Outlook不支持此功能。

您引用的UX使用两种不同类型的Action元素。在这种情况下,有几个Button控件和一个Menu控件(下拉列表)。

以上所有内容都在您的加载项清单文件中定义。有关加载项命令的工作示例,GitHub上有Office Add-in Commands Sample可用。此仓库中包含多个附加样本,每个样本都有自己的清单(例如Word manifest)。

答案 1 :(得分:-1)

对于路由/导航,最好使用角度路由器,这样应用程序就可以像单页应用程序一样运行。

关于通过带状按钮打开的对话窗口导航或者他们之间的互动是不可能的,直到现在我知道。每个按钮应调用不同的模块。