Javascript 在淘汰中从父级删除子级

Javascript 在淘汰中从父级删除子级,javascript,knockout.js,Javascript,Knockout.js,模型 html 我可以将modelid添加到ChildModel,然后使用 deleChildModel: function (Childmodels) { helloWorldModel.model.childModel.remove(Childmodels); } 但是我正在寻找更简单的方法您可以使用bind让按钮将父项和子项传递给deleteChild函数。bind的第一个参数提供调用结果函数时的上下文(this) var模型=[

模型

html

我可以将modelid添加到ChildModel,然后使用

        deleChildModel: function (Childmodels) {
            helloWorldModel.model.childModel.remove(Childmodels);
        }

但是我正在寻找更简单的方法

您可以使用
bind
让按钮将父项和子项传递给deleteChild函数。
bind
的第一个参数提供调用结果函数时的上下文(
this

var模型=[{
名称:“一”,
儿童模型:[{
childname:“SubOne”
}]
}, {
姓名:"两",,
儿童模型:[{
childname:“SubTwo”
}]
}];
var vm=(函数(){
var self={
模型:ko.mapping.fromJS(模型),
dele:功能(项目){
自.模型.删除(项);
},
deleteChild:函数(子函数){
var parent=此;
parent.childmodel.remove(子级);
}
};
回归自我;
}());
ko.应用绑定(vm)

删除子项
@{
   var datam = new JavaScriptSerializer().Serialize(Model);
 }
var helloWorldModel = {
        model: ko.mapping.fromJS(@Html.Raw(datam)),
        dele: function (models) {
            helloWorldModel.model.remove(models);
        }
    }

 ko.applyBindings(helloWorldModel);
    <span data-bind="foreach:model">
      <span data-bind="text : name"></span>

       <span data-bind="foreach:childmodel">
          <input type="text" data-bind="value:childname" />
       </span>

    <input type="button" data-bind="click:$parent.dele" value="delete parent" />
  </span>
        deleChildModel: function (Childmodels) {
            helloWorldModel.model.childModel.remove(Childmodels);
        }
           deleChildModel: function (Childmodels) {
            helloWorldModel.model()[Childmodels.modelid].childModel.remove(Childmodels);
            }