KnockoutJS从可观察数组中删除项目.Item 是 ul 中的列表项,由 foreach 生成
KnockoutJS remove item from observable array. Item is listitem within ul, which was generated by foreach
使用 KnockoutJS,如何从可观察数组中删除项目?我希望能够单击列表项,并从数组(从而删除列表)中删除该项。
下面的代码示例报告:"this.expertise is undefined"。
我是否需要定义某种专业知识对象,然后从其中调用它?
<ul data-bind="foreach: expertise">
<li data-bind="text: Key, click: $parent.removeExpertise"></li>
</ul>
<script type="text/javascript">
$(function () {
function AppViewModel() {
this.removeExpertise = function (expertise) {
this.expertise.remove(expertise);
};
this.expertise = ko.observable([
{ Key: 'Charles', Value: 'Charlesforth' },
{ Key: 'Denise', Value: 'Dentiste' }
]);
}
// Activates knockout.js
jQuery(document).ready(function () {
ko.applyBindings(new AppViewModel());
});
});
</script>
当您从子项调用方法时,this
将设置为子项而不是$parent
。
有许多方法可以确保使用适当的this
值调用removeExpertise
。 一个简单的方法是使用 .bind
.
它看起来像:
this.removeExpertise = function (expertise) {
this.expertise.remove(expertise);
}.bind(this);
此外,你会希望expertise
是一个observableArray
而不是一个observable
,因为observableArray
公开了数组操作方法,包括一个remove
函数。
相关文章:
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 在列表中至少使用两次随机生成的nr
- 将for循环生成的图标附加到列表项锚点中
- 生成ACF标记位置的数组(元素列表后缺少])
- 如何使列表生成的html表具有响应性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 使用Google Feeds API使用“tap”在jquery mobile中自动生成feed列表
- 如何在我的javascript生成列表中的
- 部分中放置更多超链接
- 如何使用预定义字符串列表“动态”生成 HTML 代码
- 如何使用CSS在列中显示随机生成的列表
- 如何在Javascript中设置随机生成的项目列表的样式
- JQuery-从单词列表生成网格
- 在 nodejs 中从集合/列表生成有序对
- 如何加载使用下拉列表生成的新页面更改
- 根据电子邮件通讯中使用的有序答案列表生成投票/调查代码
- 基于选择列表生成的Cookie
- 如何使用javascript/jquery从嵌套列表生成嵌套json对象
- 为每个播放列表生成HTML标记的最佳方式是什么
- 从 HTML 下拉列表生成 csv 文件时删除空格
- youtube-api播放列表生成(仅标题)