Angular JS适用于Chrome,但不适用于IE 11

时间:2014-05-19 07:41:59

标签: javascript angularjs internet-explorer google-chrome background-color

我正在接受Angular JS: http://www.sitepoint.com/practical-guide-angularjs-directives/, 我发现以下代码适用于Chrome,但不适用于IE 11.

<!DOCTYPE html>
<html ng-app="myapp">
<head>
    <meta charset="utf-8" />
    <title>No Title</title>
    <script data-require="angular.js@1.2.x" src="http://code.angularjs.org/1.2.7/angular.js" data-semver="1.2.7"></script>
</head>
<body>
    <input type="text" ng-model="color" placeholder="Enter a color..." />
    <div data-hello-world />
    <script>
        var app = angular.module('myapp', []);
        app.directive('helloWorld', function () {
            return {
                restrict: 'AE',
                replace: true,
                template: '<p style="background-color:{{color}}">Hello World!!</p>',
                link: function (scope, elem, attrs) {
                    elem.bind('click', function () {
                        elem.css('background-color', 'white');
                        scope.$apply(function () { scope.color = "white"; });
                    });
                    elem.bind('mouseover', function () { elem.css('cursor', 'pointer'); });
                }
            }
        });
    </script>
</body>
</html>

具体来说,鼠标悬停和点击事件可以正常工作。但是,段落的背景颜色不在IE中(颜色永远不会改变)。它在Chrome中没问题。谢谢!

4 个答案:

答案 0 :(得分:8)

可能是因为文档兼容性。这对我有用:

将此标记添加到web.config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=10" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration> 

答案 1 :(得分:3)

使用ng-style标签代替style =&#34; {{CSS}}&#34;。后者适用于Chrome和Firefox,但无法在Internet Explorer中使用&lt; = 11。

答案 2 :(得分:3)

我在头部添加了以下内容并且有效。它与马克所说的非常相似......只是没有特定的asp.net:

<meta http-equiv="X-UA-Compatible" content="IE=11" />

我还发现我需要在旧版IE的if语句中添加response和modernizer:

<!--[if lt IE 9]>
<script src="/Binders/Scripts/modernizr-2.8.3.js"></script>
<script src="/Binders/Scripts/respond.js"></script>
<![endif]-->

答案 3 :(得分:0)

尝试&#34;使用严格&#34;控制器之前的指令

"use strict";
function controller($scope) {
    // your code....
}