web-dev-qa-db-fra.com

Angular JS fonctionne dans Chrome, mais pas IE 11

Je récupère Angular JS à: http://www.sitepoint.com/practical-guide-angularjs-directives/ , And I découvrez que les codes suivants fonctionnent dans Chrome, mais pas IE 11.

<!DOCTYPE html>
<html ng-app="myapp">
<head>
    <meta charset="utf-8" />
    <title>No Title</title>
    <script data-require="[email protected]" 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>

Plus précisément, les événements mouseover et click fonctionnent correctement. Cependant, la couleur d'arrière-plan du paragraphe ne figure pas dans IE (la couleur ne change jamais). C'est bon dans Chrome. Merci!

11
Dunnomuch

Peut-être parce que la compatibilité du document. Cela a fonctionné pour moi:

Ajoutez cette balise à 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> 
7
Mark

J'ai ajouté ce qui suit à la tête et cela a fonctionné. c'est très similaire à ce que Mark a dit ... rien de particulier:

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

j'ai également constaté que je devais ajouter répondre et moderniser dans une instruction if pour les anciennes versions d'IE:

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

Utilisez des balises de style ng au lieu de style = "{{CSS}}". Ce dernier fonctionne dans Chrome et Firefox mais ne fonctionne pas dans Internet Explorer <= 11.

3
Ankit

Essayez la directive "use strict" avant le contrôleur

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