首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过AngularJS在Excel外接程序中依赖“`ng app”

通过AngularJS在Excel外接程序中依赖“`ng app”
EN

Stack Overflow用户
提问于 2018-01-02 04:58:34
回答 1查看 143关注 0票数 0

我已经用mean-stack开发了一个Excel外接程序.很久以前,我在某个地方看到了一个关于用office.js启动AngularJS外接程序的答案(不幸的是,我再也找不到线程了)。有人提出了以下解决办法,但我不记得最初的问题是什么:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2018-01-02 11:22:08

Office.initialize是强制性的。我解决这个问题的方法是这样的。

使用$routeProvider配置负载控制器到部分模板loading.html的映射。

代码语言:javascript
复制
$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并重定向到另一个部分视图。

代码语言:javascript
复制
function LoadController(/* Your dependencies */){
    Office.initialize = function() {
         window.location.hash = 'app';
    }
}

LoadController中,角应用程序的'/' url只显示加载程序。所以你看到的第一个模板是加载模板--但是你已经进入了角度应用程序。当office.js初始化时,它只会指向实际的体验。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48055775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档