我正在使用AngularJS处理PowerPoint-AddIn。要获取用户语言,我使用Office.context.displayLanguage,它仅在Office.initialize -Callback中可用。我通过Angular-Factory获得了我的语言字符串。当我将Office.initialize -Callback放入我的Angular Controller中时,它会破坏Controller-Functionality,并且我的页面上的按钮不再有效。我做错了什么?
myApp.controller('angularHomeController', ['$scope', 'lang', function ($scope, lang) {
$scope.lang = lang.getLocaleStrings("en-US");
Office.initialize = function (reason) {
$scope.lang = lang.getLocaleStrings(Office.context.displayLanguage);
}
}]);
我将语言默认设置为英语,但是我希望在初始化文档时更改它并且我可以访问displayLanguage。我的应用程序工作正常,直到我将Office.initialize -Callback放在我的控制器内。我应该以某种方式注入Office对象吗?我没有收到任何错误消息。
答案 0 :(得分:5)
我有一个类似于我在评论中提到的问题。
您只需在Office.initialize
标记中声明<head>
并在其中引导角度模块:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
<!-- Add the following script -->
<script type="text/javascript">
Office.initialize = function (reason) {
angular.bootstrap(document, ['myOfficeModule']);
};
</script>
<script type="text/javascript" src="../../Scripts/Angular/angular.min.js"></script>
<!-- Other scripts -->
</head>
<body>
<ng-view></ng-view>
</body>
</html>
注意:在您手动引导时不再需要ng-app="myOfficeModule"
。
它适用于我,现在可以从我的服务访问Office
对象。我希望它也适合你。
使用的来源:http://www.chaosm.net/blog/2014/07/27/load-angularjs-after-office-initialized/