我已经用mean-stack开发了一个Excel外接程序.很久以前,我在某个地方看到了一个关于用office.js启动AngularJS外接程序的答案(不幸的是,我再也找不到线程了)。有人提出了以下解决办法,但我不记得最初的问题是什么:
Office.initialize = function (reason) {
jQuery(document).ready(function () {
angular.bootstrap(document, ['app'])
})
}现在,我尝试编写<html ng-app="app">,而不是使用上面的块(这允许我延迟加载office.js)。到目前为止,外接程序似乎也很有效。
那么,有没有人知道<html ng-app="app">方式是否对Excel外接程序有任何潜在的风险?Office.initialize不是强制性的,对吗?
编辑1: --我刚刚意识到,它在所有情况下都不能很好地工作,问题是:Starting up an Excel add-in with ocLazyLoad failed in Excel for Windows。
发布于 2018-01-02 11:22:08
Office.initialize是强制性的。我解决这个问题的方法是这样的。
使用$routeProvider配置负载控制器到部分模板loading.html的映射。
$routeProvider.when('/',
{
templateUrl: 'views/loading.html',
controller: LoadController
}).when('/app',
{
templateUrl: 'views/app.html',
controller: AppController
});;到目前为止,该块确保了当您在默认情况下开始使用yourserver.org#/ url外接程序时,将显示加载控制器。在加载控制器的html中,只需放置一个旋转器即可。因此,当您的应用程序加载,但office.js尚未初始化,您将显示旋转器。
现在,在您的LoadController中,您将初始化office.js并重定向到另一个部分视图。
function LoadController(/* Your dependencies */){
Office.initialize = function() {
window.location.hash = 'app';
}
}在LoadController中,角应用程序的'/' url只显示加载程序。所以你看到的第一个模板是加载模板--但是你已经进入了角度应用程序。当office.js初始化时,它只会指向实际的体验。
https://stackoverflow.com/questions/48055775
复制相似问题