http://stackoverflow.com/questions/42172685/remove-self-from-observablearray-in-knockout (parent click)

by jlspake

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>
<div data-bind="foreach: users">
    <span data-bind="text: name"></span>
    <a href="javascript:void(0)" data-bind="click: $parent.removeItem">Remove</a>
    <br />
</div>

JavaScript

var ViewModel = function(data)
{
		var self = this;
    this.users = ko.mapping.fromJS(data,
        {
            create: opts => new UserModel(opts.data)
        });
        
    this.removeItem = function(item){
    		$.ajax({
            type: 'DELETE',
            url: '/echo/json',
            data: ko.mapping.toJSON(this),
            contentType: 'application/json',
            context: this,
            success: function(data)
            {
                //remove from array
    						self.users.remove(item);
            },
        });
    }
        
}

var UserModel = function(data)
{
    ko.mapping.fromJS(data, {}, this);
}

ko.applyBindings(new ViewModel([{name: 'tom'}, {name: 'bob'}, {name: 'sam'}, {name: 'joe'}]));