gpt4 book ai didi

javascript - Knockout.js - foreach 绑定(bind) - 测试最后一个元素

转载 作者:IT王子 更新时间:2023-10-29 03:07:33 35 4
gpt4 key购买 nike

我正在使用以下模板:

<div class="datatypeOptions" data-bind="if: $data.datatypeTemplate().allowOptions">
<h3>Allowed responses</h3>

<p data-bind="if: $data.datatypeTemplate().datatypeOptions().length == 0">There are no responses for this question, yet. <a href="#" data-bind="click: function(d, e){$root.addDatatypeOption($data.datatypeTemplate());}">Add one</a>
<ul data-bind="foreach: $data.datatypeTemplate().datatypeOptions()">
<li>
<a href="#" data-bind="text: name, click: $root.selectedDatatypeOption, visible: $data !== $root.selectedDatatypeOption()"></a>
<input data-bind="value: name, visibleAndSelect: $data === $root.selectedDatatypeOption(), event: { blur: $root.clearDatatypeOption }, executeOnEnter: { callback: function(){ $root.addDatatypeOption($parent.datatypeTemplate()); } }" />
//I want to show this a tag only if $data is the last element in the array.
Problem here ===> <a href="#" data-bind="if: $data == $parent.datatypeTemplate().datatypeOptions()[ $parent.datatypeTemplate().datatypeOptions().length - 1 ], click: function(d, e){$root.addDatatypeOption($data.datatypeTemplate());}"><img src='/static/img/icons/custom-task-wizard/black/plus_12x12.png' title='Add option'></a>
</li>
</ul>
</div>

我在控制台中收到此错误:

Uncaught Error: Unable to parse bindings.
Message: TypeError: Object [object Object] has no method 'datatypeTemplate';
Bindings value: if: $data == $parent.datatypeTemplate().datatypeOptions()[ $parent.datatypeTemplate().datatypeOptions().length - 1 ], click: function(d, e){$root.addDatatypeOption($data.datatypeTemplate());}

我唯一的选择是向我的 View 模型添加一个函数,如果传递的元素在数组中是最后一个则返回 true/false 吗?

最佳答案

我已经简化了问题,但是这个 jsFiddle展示了一个可能的解决方案。

“如果”绑定(bind):

<div data-bind="if: ($index() === ($parent.data().length - 1))">I'm the last element</div>

无容器“if”绑定(bind):

<!-- ko if: ($index() === ($parent.data().length - 1)) -->
<div>I'm the last element again</div>
<!-- /ko -->

您可以在 foreach 绑定(bind)中使用 $index 来获取当前绑定(bind)项的索引。用它来与父级的原始集合进行比较。

参见 HERE有关绑定(bind)上下文的更多信息。

关于javascript - Knockout.js - foreach 绑定(bind) - 测试最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185821/

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