控制器仅在Internet Explorer中不工作

Controller not working in Internet Explorer only

本文关键字:工作 Explorer Internet 控制器      更新时间:2023-09-26

我正在创建一个使用angular JS的SharePoint应用程序。所有需要的脚本(根据应用程序的需求)和样式都以顺序的方式通过脚本动态添加。

HTML是通过脚本创建的。

除IE外,所有浏览器都可以正常工作。所有数据都已加载并正常运行。

控制器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中不行。

谢谢,

终于找到了解决这个问题的办法。

angular.element(document).ready(function () {
    angular.bootstrap(document, ['scaInfoApp']);
});