【发布时间】:2014-05-22 02:21:00
【问题描述】:
我有以下问题:我有一个可观察数组(从服务器填充),如下所示:
this.elems = ko.observableArray([
{n: 1, t : 'hello'},
{n: 1, t : 'why'},
{n: 1, t : 'are'},
{n: 2, t : 'some'},
{n: 2, t : 'ducks'},
{n: 3, t : 'here'},
{n: 8, t : '?'}
]);
我想用下面的方式展示它:
1
Hello
why
are
2
some
ducks
3
here
8
?
如您所见,仅当前一个数字与当前数字不同时,才会显示该数字。
使用foreach 绑定(这是我的jsFiddle)将非常容易。
<div data-bind="foreach: elems">
<div class="t1">
<span data-bind="text: n" class="c1"></span>
<span data-bind="text: t" class="c2"></span>
</div>
</div>
只有当我能够访问前一个元素时。 我知道我可以修改我的 observalbe 数组并实现我想要的,但是有没有办法在不改变它的情况下做到这一点?
【问题讨论】:
-
你应该做的是,在你的视图模型上,创建一个计算的 observable 来执行分组。否则你最终会很难测试它。
-
谢谢大家。
标签: knockout.js