繁体   English   中英

Angular JS编号过滤器的行为不一致

[英]Inconsistent behaviour of Angular JS number filter

一开始听起来可能很奇怪,但是请相信我,我已经看到了这种情况:

我有以下一段Angular代码:

<tr ng-repeat="i in list">
                                    <td>{{i.name}}</td>
                                    <td ng-repeat="x in [0,1,2,3,4,5,6,7,8,9,10,11]">{{i.data[x] | number}}</td>
                                    <td>{{i.Yield| number}}</td>
                                    <td>{{i.Total | number}}</td>
                                </tr>

我在上面的代码中遇到了一个奇怪的问题。 根据API文档,当数据数组的少数索引为null时,我期望它们显示为null(无)。 即使在JS中将null解析为零,也可以期望在null处看到零。

但是我发现一种随机行为,即很少有索引被转换为零,而很少有索引保持为空。 我无法为此找到任何模式。

更奇怪的是,即使在页面已加载后,值也从零更改为null或从null更改为零,这一事实使我了解到正在运行和更新这些值的任何摘要周期。

为了做出适当的限制,我将上面的代码修改如下

<tr ng-repeat="i in list">
                            <td>{{i.name}}</td>
                            <td ng-repeat="x in [0,1,2,3,4,5,6,7,8,9,10,11]">{{i.data[x] != null ? (i.data[x] | number) : ''}}</td>
                            <td>{{i.Yield === null ? '' : i.Yield | number}}</td>
                            <td>{{i.Total === null ? '' : i.Total | number}}</td>
                        </tr>

但问题依旧。 我已经尝试过寻找任何错误,但是从我这方面来看一切都很好。 数据肯定为空,没有应用可能导致这种行为的其他检查; 我还看不到。

有没有人以前遇到过这种事情。

将您的标记更改为:

 <td ng-repeat="item in i.data | limitTo : 12">{{item != null ? item : NaN | number }} </td>

角数过滤器,返回值为NaN,但不为空字符串('')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM