gpt4 book ai didi

javascript - 如何使用 KnockoutJS 在 foreach 循环中指定不同的点击绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 13:04:44 25 4
gpt4 key购买 nike

我有一个 knockout 可观察数组的形式:

this.controls = ko.observableArray([
{
name: 'Previous',
action: '$root.previous'
},
{
name: 'Next' ,
action: '$root.next'
},
{
name: 'Save',
action: '$root.save'
}
]);

在我看来,我想做以下事情:

<div class="controls navigation">
<ul data-bind="foreach: $root.controls">
<li>
<span data-bind="text: name, click: action"></span>
</li>
</ul>
</div>

该 View 创建了三个独立的跨度,它们本质上是按钮。我的目标是在每次用户点击特定跨度时调用 View 模型中的相应操作。

但是,这不起作用。

我该如何循环遍历数组并为每个项目指定不同的点击绑定(bind)操作?

我可以很容易地写出每个 span 个体(在这种特定情况下,因为数组中只有 3 个项目),但我很好奇我如何使用数组完成此操作。

最佳答案

你们很亲近。假设您像这样定义了上一个、下一个和保存

this.previous = function() { ... };

假设你这样定义自己

self = this;

然后你所要做的就是像这样更新你的数组:

this.controls = ko.observableArray([
{
name: 'Previous',
action: self.previous
},
{
name: 'Next',
action: self.next
},
{
name: 'Save',
action: self.save
}
]);

请注意操作不再是字符串,而是对函数的引用。

http://jsfiddle.net/tlarson/Dwwft/

关于javascript - 如何使用 KnockoutJS 在 foreach 循环中指定不同的点击绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111832/

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