我有angularJS(AngularJS v1.3.0-beta.3)应用程序在IE10兼容模式下崩溃.它适用于FF,Chrome和IE11.这是我在控制台中得到的错误:
Multiple directives [login,login] asking for 'login' controller on: <div>
设置应用程序的状态,我创建一个节点:
link: function ($scope,$element,$attrs) { .... $element.html('<login></login>'); $compile($element.contents())($scope); // crash happens here .... }
这是我的登录指令:
widgets.directive('login',['$compile','$http','resourceLoader',function ($compile,$http,resourceLoader) { return { restrict: 'AE',replace: true,template: '<div></div>',controller: function ($scope,$element) { $scope.user.isLogged = false; $scope.user.password = undefined; $scope.submitLogin = function () { // code that goes to server }; },link: function ($scope,$attrs) { resourceLoader.get('templates','profile','unlogged/login','jquery.min',function (template) { $element.html(template); $compile($element.contents())($scope); }); } }; }]);
有任何想法吗?感谢名单.
解决方法
主要问题是Angular 1.3不支持旧版本的Internet Explorer,更具体地说是IE8及更少版本.将IE10置于兼容模式将使浏览器就像某个布局和功能的旧浏览器一样.向后兼容性问题可能是这里的罪魁祸首.
Angular的建议是保持小于1.3的版本以确保兼容性.
参考文献:
有关问题的进一步阅读,请参见Angular’s post on the 1.3 update并查看Compatibility Mode settings.