【发布时间】:2016-02-22 16:47:37
【问题描述】:
我有一个包含多个属性名称和值的对象,这些属性名称和值通过 ng-repeat 打印出来。这个大对象中的两个对象称为currencyName 和currencyPrice。
默认情况下,这些对象在后端硬编码了 8 个小数,我的任务是使用 Angular 在显示页面中操作某些 currencyName 以显示 5 个小数或 8 个小数。默认情况下,currencyPrices 在后端硬编码了 8 位小数,由于该位代码在其他地方被重用,因此无法触及。对于我正在处理的显示页面,我们使用过滤器 |编号:默认为 2。
我尝试创建一个自定义过滤器,该过滤器将针对主对象的数组,运行 for 循环/forEach 方法,以currencyName 对象为目标,如果它与包含要操作的currencyNames 的数组匹配,则角度显示页面将显示 5 位小数(在这种情况下)。
这对我来说非常困难。我没有完整的代码来粘贴它,但这里有一些示例代码来显示代码的外观。
<tr ng-repeat="full in fulls.mainList" class="animate-repeat">
<td>{{full.currencyName}}</td>
<td>{{full.tradedAverage | number:2}}</td>
<td>{{full.tradedAmount | number:2}}</td>
<td>{{full.currencyPrice | number:2}}</td>
</tr>
在这种情况下,fulls 是控制器内部正在解析的大对象。
【问题讨论】:
-
1) 你的 HTML 中的 是什么? - 这是错的。 2) 能不能把过滤器的js代码也给一下?
-
使用真正的 MVVM 框架而不是 Angular……。
-
@shershen 嘿,对不起,我删除了它。除了 标记之外,还有其他几个标记有助于 css 和其他位。我去掉了所有的胡言乱语,让它看起来尽可能干净。值得注意的是,我能够应用 scotch.io 从scotch.io/tutorials/building-custom-angularjs-filters 列出的自定义过滤器,因此我确保常规过滤器有效,但不是我正在尝试构建的过滤器。
-
@Mjaaay,所以,你想限制
currencyName吗? -
@AbhilashPA-Pullelil 嘿,我不确定限制意味着什么。假设对象 currencyName 具有名为 CNY、USD 等的属性名称,我创建了一个包含 ["GBP", "NOK"] 的数组。如果 currencyName 与此数组中的任何内容匹配,则该 currencyName 的 currencyPrice 将通过自定义过滤器将其小数从 2 更改为 5。
标签: javascript angularjs angularjs-ng-repeat angular-filters