AngularJS scope bug? Different results on chrome(43) and firefox(38.0.5)
最近我和angularjs一起摆弄着,我发现了一些奇怪的东西。
使用函数来确定存储在ng-repeat内的对象属性中的日期之间的日期差异我在chrome上得到了不同的结果而在firefox上有不同的结果
PLUNKER
来自firefox的结果:http://scr.hu/28dp/17r4y(不正确)
铬的结果:http://scr.hu/28dp/uik13(正确)
我用来计算时差的函数:
1 2 3 4 5 6 | $scope.daysDiff = function (date) { var dateobj = new Date(date); var current = new Date("2015-06-28"); var resultDays = Math.floor(Math.abs((current - dateobj) / (86400000))); //1k *60*60*24 return resultDays; }; |
我在ng-repeat中多次使用它来显示或隐藏元素,如下所示:
1 2 3 4 5 6 7 | <tr ng-repeat="dat in data"> ... <td>YES</td> ... <td>YES</td> ... </tr> |
使用ng-if时完全相同的行为
//编辑
这个问题不是关于生成带有角度的正确表格,而是关于chrome和firefox之间的不一致。
问题仍然是由于某种原因在Firefox中没有正确评估表达式。您可以在我上面附带的plunker示例中看到它。
尝试在chrome中打开它,然后在firefox中打开它。
//编辑#2
为清晰起见,添加了td标签
注意:角度1.3中也会出现同样的问题
问题在于Date()对象本身.. chrome能够解析日期2015-07-7而没有任何问题,而firefox返回了无效的日期对象。 与2015-07-07工作正常。
工作实例
1 | dateExpires:"2015-07-" + ((i<3) ? ("0"+(i + 7)) : (i + 7)), |
它只是在日期编号之前添加了0