0

IE8 再次让一切变得困难。

我在我的角度应用程序上声明了 3 个工厂 [方法?]。然后我声明了一个控制器。然后我为控制器注入必要的提供程序。看起来像这样:

angular.module('app', ['ui', 'shared', 'visitDirectives', 'GlobalFilters', 'ng']).factory('routingScopeManager', ['$rootScope', function ($rootScope) {
    var masterScopeTracker = {};
    ....
    return masterScopeTracker;
}]).factory('validationManager', ['$rootScope', function ($rootScope) {
    var validationTracker = {};
    ...
    return validationTracker;
}]).factory('userManager', ['$http', '$rootScope', '$window', function ($http, $rootScope, $window) {
    var CurrentUser = {};
    ...
    return CurrentUser;
}]);


function visitController($scope, $location, $http, $window, masterScopeTracker, CurrentUser) {
    ...
}


visitController.$inject = ['$scope', '$location', '$http', '$window', 'routingScopeManager', 'userManager'];

在 Chrome 和 Firefox 中一切正常。但是 IE8 抛出此错误:错误:未知提供程序:routingScopeManagerProvider <- routingScopeManagerundefined

我的应用程序母版页在 HTML 标记中定义了 ng-app,如下所示:

<html class="ng-app" ng-app="app">

不知道我在这里做错了什么。我已经在其他项目中没有任何问题(使用 IE8 进行测试时)这样做了,所以我必须忽略一个步骤。我已经按照 angularjs 网站上的指南来使用 IE。没有改变任何东西。任何方向都会很棒。

4

1 回答 1

1

答案如下:

<html class="ng-app" ng-app="app">

这里我有 2 个 ng-app 声明。当我使这个 ie8 兼容(使用类)时,一个简单的忽略。您只能有一个 ng-app 声明,否则您将度过一段糟糕的时光。

固定的:

<html class="ng-app">
or
<html ng-app="app">
于 2013-08-14T19:00:58.577 回答