gpt4 book ai didi

knockout.js - 从 knockout foreach 循环中访问先前索引的项目?

转载 作者:行者123 更新时间:2023-12-02 21:39:57 25 4
gpt4 key购买 nike

我有一个列出消息的聊天应用程序 - 如果当前消息和上一条消息是由同一用户发布的,我希望不在当前消息上显示用户名。

首先,我尝试导航到 foreach 之外,通过相对索引访问数组。看来我什至无法通过直接索引访问项目:

<ul data-bind="foreach:array1">
<li data-bind="text:$parent.array1()[0]">Should be John, works</li>
<li data-bind="text:$parent.array1()[$index]">Should be the same as $data, but throws error</li>
</ul>

最终,我想做以下事情:

<ul data-bind="foreach:array1">
<li data-bind="text:$parent.array1()[$index - 1]">Happens after index 0 only</li>
</ul>

Fiddle 演示第一个问题:http://jsfiddle.net/xveEP/148/

如何实现这一目标?

最佳答案

如果您检查 Knockout 变更日志,$index 已在版本 2.1.0 中实现:http://blog.stevensanderson.com/2012/05/09/knockout-2-1-0-released/因此,更改 jsfiddle 中的版本可以部分解决第一个问题。您将不会再看到错误。

现在您必须正确绑定(bind)$index。根据文档,它是一个可观察的,因此要在表达式中使用它,您需要返回它的值:data-bind="text:$parent.array1()[$index()]"。挖空文字装订文档注1:http://knockoutjs.com/documentation/text-binding.html

这为我们提供了工作 jsfiddle:http://jsfiddle.net/xveEP/150/

当您将相同的解决方案(更改版本并在表达式中使用 $index())应用于第二个问题时,您可以执行您想要的操作:http://jsfiddle.net/xveEP/151/

关于knockout.js - 从 knockout foreach 循环中访问先前索引的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com