Model view controller MVC Knockout.js

Model view controller MVC Knockout.js,model-view-controller,knockout.js,Model View Controller,Knockout.js,在这个链接的帮助下,我能够创建一个动态表单 var viewModel = { users : ko.observableArray(), addUser : function () { this.users.push({ name : ko.observable(), choicestring : ko.observable() }); } }; viewModel.addUser();

在这个链接的帮助下,我能够创建一个动态表单

var viewModel = {
    users : ko.observableArray(),
    addUser : function () {
        this.users.push({
            name : ko.observable(),
            choicestring : ko.observable()
        });
    }
};

viewModel.addUser();

ko.applyBindings(viewModel);
我的问题是我不知道如何删除我添加的控件, 我该如何使用Knockout.js实现这一点


感谢并致以最诚挚的问候

通常是这样的(对webapi有效,对MVC也有效):


Knockout的可观察数组有一个
.remove(item)
函数为您执行此操作。因此,您可以将其添加到视图模型中:

removeUser : function ( user ) {
    this.users.remove( user );
}
然后像这样把它连接起来:

<ul data-bind="foreach: users">
    <li>
        <span data-bind="text: name"></span>
        (<a href="#" data-bind="click: function () { $parent.removeUser( $data ); }">Remove</a>)
    </li>
</ul>
<button data-bind="click: addUser">Add user</button>
  • ()
添加用户

JSFIDLE示例:

您能提供更多详细信息吗?您打开了一个带有2个输入字段的表单,想要单击“保存”按钮(将新用户添加到用户数组),然后想要表单消失吗?您好,infadelic,在这组代码中,我可以添加新控件,现在我想在单击旁边的移除按钮时从数组中移除控件。
<ul data-bind="foreach: users">
    <li>
        <span data-bind="text: name"></span>
        (<a href="#" data-bind="click: function () { $parent.removeUser( $data ); }">Remove</a>)
    </li>
</ul>
<button data-bind="click: addUser">Add user</button>