Hop*_*ppe 13 javascript knockout.js
使用KnockoutJS,如何从可观察数组中删除项?我希望能够单击listitem,并从数组中删除该项(从而删除列表).
下面的代码示例报告:'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>
Run Code Online (Sandbox Code Playgroud)
RP *_*yer 17
当你从孩子调用一个方法时,this将设置为子而不是$parent.
有许多方法可以确保removeExpertise使用适当的值调用this.一个简单的方法是使用.bind.
它看起来像:
this.removeExpertise = function (expertise) {
this.expertise.remove(expertise);
}.bind(this);
Run Code Online (Sandbox Code Playgroud)
此外,您将希望expertise成为一个observableArray而不是observable一个observableArray暴露数组操作方法,包括一个remove函数.
| 归档时间: |
|
| 查看次数: |
23650 次 |
| 最近记录: |