控制器不在Internet Explorer中工作

时间:2015-07-17 13:12:52

标签: javascript angularjs

我正在创建一个使用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中却没有。

谢谢,

1 个答案:

答案 0 :(得分:0)

终于找到了这个问题的解决方案。

angular.element(document).ready(function () {
    angular.bootstrap(document, ['scaInfoApp']);
});
以这种方式

Bootstrap angular app。