我正在创建一个使用angular JS的SharePoint应用。所有必需的脚本(根据应用程序要求)和样式都是以顺序方式通过脚本动态添加的。
HTML是通过脚本创建的。
除了IE之外,所有浏览器都能正常运行。所有数据都已加载并正常运行。
Controller JS:
var app = angular.module("scaInfoApp", ['ngSanitize']);
app.controller("scaInfoCtrl", function ($scope,CRUDService) {
console.log('Controller Loaded');
$scope.vm = this;
$scope.vm.data = {};
$scope.vm.data.mu = [];
$scope.vm.getPresence = getPresence;
console.log('Controller Loaded');
var promise = CRUDService.GetUserProfileListItems("$filter=IsSiteAdmin eq 1", "");
promise.then(function (data) {
angular.forEach(data.results, function (siteAdmin) {
console.log('controller for each');
$scope.vm.data.mu.push({ title: siteAdmin.Title, id: siteAdmin.Id });
});
if (!$scope.$$phase) {
$scope.$apply();
}
}, function (status) {
console.log("Error " + status);
});
function getPresence(userId, userTitle) {
if (userId && userTitle) {
return '<span class="ms-noWrap"><span class="ms-spimn-presenceLink"><span class="ms-spimn-presenceWrapper ms-imnImg ms-spimn-imgSize-10x10"><img class="ms-spimn-img ms-spimn-presence-online-10x10x32" src="' + appweburl + '/_layouts/15/images/spimn.png?rev=23" alt="" /></span></span><span class="ms-noWrap ms-imnSpan"><span class="ms-spimn-presenceLink"><img class="ms-hide" src="' + appweburl + '/_layouts/15/images/blank.gif?rev=23" alt="" /></span><a class="ms-subtleLink" target="_parent" onclick="GoToLinkOrDialogNewWindow(this);return false;" href="' + appweburl + '/_layouts/15/userdisp.aspx?ID=' + userId + '">' + userTitle + '</a></span></span>';
}
return '<span></span>';
}
});
相关HTML代码:
function createSiteAdminSection() {
$('<div/>', { id: 'scaInfoApp', 'class': 'container', 'data-ng-app': 'scaInfoApp', 'data-ng-controller': 'scaInfoCtrl' }).html('<div id="userBind" class="row"></div>').appendTo('#modal2 .modal-body');
$('<ul/>', { 'class': 'list-users', }).html('<li data-ng-repeat="r in vm.data.mu track by $index"><span data-ng-bind-html="vm.getPresence(r.id, r.title)"></span></li>').appendTo('#userBind');
}
同样,整个应用程序在Chrome,Mozilla,Safari上正常运行,但在Internet Explorer中却没有。
谢谢,
答案 0 :(得分:0)
终于找到了这个问题的解决方案。
angular.element(document).ready(function () {
angular.bootstrap(document, ['scaInfoApp']);
});
以这种方式Bootstrap angular app。