0

我写了一个角度控制器,它一致地崩溃Internet Explorer 11,但在Chrome,Firefox和Opera中按预期工作。角度控制器崩溃Internet Explorer 11

这里没有太复杂的内容,它使用复选框在显示所有值或数组的子集之间切换显示表格行中的数组值。

单击该框两次触发

<div ng-app="monthsApp"> 
    <div ng-controller="MonthsCtrl as monthsCtrl"> 
    <table style="border-collapse: collapse;"> 
     <colgroup> 
     <col span="{{monthsCtrl.getSpan()}}" /> 
     </colgroup> 
     <thead> 
     <tr> 
      <th> 
      <div> 
       switch between six and twelve months: 
       <input id="agings-open-balances-matrix-state" ng-model="monthsCtrl.sixOrTwelve" type="checkbox" ng-click="monthsCtrl.updateDisplay()"> 
      </div> 
      </th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
      <td>Months</td> 
      <td ng-repeat="month in monthsCtrl.monthsToDisplay">{{month}}</td> 
     </tr> 
     </tbody> 
    </table> 
    </div> 
</div> 
<script> 
    var monthsApp = angular.module('monthsApp', []); 
    monthsApp.controller('MonthsCtrl', function() { 
    var vm = this; 
    var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
    vm.sixOrTwelve = false; //false = display six month; true = display 12 months 
    vm.updateDisplay = function() { 
     vm.monthsToDisplay = []; 
     if (vm.sixOrTwelve) { 
     vm.monthsToDisplay = months; 
     } else { 
     vm.monthsToDisplay = months.slice(6); 
     } 
    } 
    vm.getSpan = function() { 
     return (vm.sixOrTwelve) ? 13 : 7; 
    } 
    vm.updateDisplay(); 
    }); 
</script> 

我创建了失事plunkr在这里证明这一点:http://plnkr.co/RTIhnU

取出“COLGROUP”标签,或者“边界崩溃”的价值在表格样式属性中解决问题。

这是一个已知问题,如果有的话是否有解决方法或修复?

+0

只是为了补充一点,我几乎没有意识到这一点,我没有着手写一个控制器,它会使IE崩溃! –

+0

我可以确认崩溃。这似乎是当你再次取消复选框 – mvermand

+0

感谢mvermand我已经添加了指示触发崩溃 –

回答

2

尝试this一。

的问题是在这条线:

<col span="{{monthsCtrl.getSpan()}}" />

显然,合并单元格不能很好地在IE11双向绑定工作。在用函数getSpan替换变量spanLength并使用单向绑定后,它不再崩溃。