繁体   English   中英

在attr绑定中绑定对象-KnockoutJs

[英]Bind object in attr binding - KnockoutJs

有一个要求,我需要在value属性中绑定对象,因为KnockoutJs在复选框事件中将值作为第一个参数发送。 当作为单个值传递时,一切都很好。

<div data-bind="foreach: Items">
   <input type="checkbox" value data-bind="attr: { value: id }, checked: selectedVal">

this.selectedVal.subscribe((newVal: any) => {
  alert(newVal);
});

我想传递迭代项对象本身,而不是传递迭代项的一个属性。

Items = [
  {
    id: 1,
    name: 'Adam',
  },
  {
    id: 2,
    name: 'Bailey',
  },
  {
    id: 3,
    name: 'Cathy',
  },
]

在订阅时,我想要带有ID和名称的整个对象,让我知道我该怎么做?

您可以使用checkedValue: $data告诉复选框写入整个对象。 例如:

 const items = [ { id: 1, name: 'Adam', }, { id: 2, name: 'Bailey', }, { id: 3, name: 'Cathy', }, ]; const selected = ko.observableArray([]); selected.subscribe(console.log); ko.applyBindings({ items, selected }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <div data-bind="foreach: items"> <label> <input type="checkbox" data-bind="checkedValue: $data, checked: selected"> <span data-bind="text: name"></span> </label> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM