gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:42:07 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 中更改版本可以部分解决问题 1。您将不会再看到错误。

现在您必须正确绑定(bind) $index。根据文档,它是一个可观察对象,因此要在表达式中使用它,您需要返回其值:data-bind="text:$parent.array1()[$index()]"。挖空文本绑定(bind)文档注释 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