2

目前在 Internet Explorer 和 Angular js 方面存在问题。

如下所示的 html 在 Chrome 和 Firefox 中呈现良好,但是 ng-view 标记中的任何内容都不会在 IE 中呈现。

<html xmlns:ng="http://angularjs.org">
<html lang="en" ng-app="poc">
<head>
<meta charset="utf-8">
<title>poc</title>
<link rel="stylesheet" href="css/app.css"/>
<link rel="stylesheet" href="css/bootstrap.css"/>
<script src="lib/angular/angular.js"></script>
<script src="js/app.js"></script>
<script src="js/services.js"></script>
<script src="js/controllers.js"></script>
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
<script src="cordova-2.1.0.js"></script>
<script src="js/jquery.min.js"></script>
</head>
<body>
<div ng-view>
</div>
</body>
</html>

我试图注入的部分如下所示:

<section>
<h1>Proof of Concept</h1>
<ul>
<li><a href="#/phonegap">Try Phonegap Features</a></li>
<li><a href="#/observations">Test Websocket Requests</a></li>
<li><a href="#/persondetails">Test Person Details Requests</a></li>
</ul>
<section>

下面的代码显示了我们正在使用的路由实现:

'use strict';

angular.module('poc', ['pocFilters', 'pocServices']).
config(['$routeProvider', function($routeProvider){
$routeProvider.
    when('/poc', {templateUrl: 'partials/poc.html',   controller: PocCtrl}).

    when('/observations', {templateUrl: 'partials/observations.html', 
    controller: ObservationsCtrl}).

    when('/phonegap', {templateUrl: 'partials/phonegap.html',
    controller: PhonegapCtrl}).

    when('/persondetails', {templateUrl: 'partials/persondetails.html',
    controller: PersondetailsCtrl}).

    otherwise({redirectTo: '/poc'});
}]);

任何人对可能导致 IE 出现问题的原因有任何想法吗?

谢谢,

帕特里克

4

4 回答 4

12

First you should look at angularjs doc on IE. I wrote an IE Shiv for angular-ui which frees you from doing this and when you create element style directives (which ng-view, ng-include etc are), you can instruct shiv of which of your angular modules have these directives.

于 2012-10-20T22:50:13.130 回答
3

添加id="ng-app"到您正在使用ng-app指令的标签中。在您的情况下,标签是<html>. 因此,您的 html 标记应如下所示,以使应用程序在 IE 中呈现。

<html lang="en" ng-app="poc" id="ng-app">

代替

<html lang="en" ng-app="poc">

于 2013-10-17T11:53:45.140 回答
1

Angular 1.2 RC1不能很好地与IE 11配合使用:路由时存在 CORS 问题。结果是视图未呈现(因为未获取其内容)

如果您怀疑这是问题所在 - 打开控制台 (F12)。你可以在那里看到异常。

这已在 Angular 1.2 RC3中解决。

于 2014-02-03T14:20:45.750 回答
0

HTML5 元素需要一个 shim(特别是 section 标签),当你只需要一个时,你有两个 html 标签,你真的应该声明一个 doctype,你还需要在 html 标签中添加 id="ng-app" IE7 工作。

要填充元素,请为每个元素创建一个带有document.createElement();语句的脚本(文件或只是一个标签) - 在您的情况下document.createElement('section')

那应该让你正确。

于 2013-09-03T17:26:35.433 回答