knockout.js复选框与observableArrays的双向绑定
knockout.js two-way binding of checkboxes with observableArrays
我是淘汰赛的新手,在让复选框做我想做的事情时遇到了一些问题。首先,以下是我迄今为止尝试的内容:http://jsfiddle.net/imagitron/mMc6k/,以及违规的代码行:
<input type="checkbox" data-bind="checked: $root.selectedItems"/>
本质上,我要做的是通过复选框链接两个数组,这样当我单击复选框时,它会存储定义数组中的对象,并将其保存到selectedItems数组中。此外,当我按下按钮时,removeItems函数不会清除数组。
提前感谢!
据我所知,淘汰赛不支持开箱即用。checked
绑定将单个复选框的状态绑定到单个布尔属性。但是,要想以两种方式工作,您需要指示函数名称而不是函数调用($root.someProperty
而不是$root.someProperty()
)。
value
绑定对复选框没有意义。它用于绑定其他输入字段(如文本框)的值。
为了实现你想要的,你可以定义一个数组,每个复选框都有一个对象,如下所示:
var items = ko.mapping.fromJS([
{ label: 'Foo', checked: false },
{ label: 'Bar', checked: false }
]);
并像这样绑定:
<!-- ko foreach: items -->
<input type="checkbox" data-bind="checked: checked"/>
<span data-bind="text: label"/>
<!-- /ko -->
然后使用ko.computed
函数检索数组的检查值:
var checkedItems = ko.computed(function() {
return _.filter(items, function (item) { return item.checked() });
});
(这是一个隐藏的下划线库广告-如果你没有,据我记忆所及,knockout有类似的功能)
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 数据绑定:'系统Char'不包含名为'xxxxx'
- react组件中的绑定方法
- 如何将ngrepeat下的ngmodel绑定到$scope
- WinJS内联绑定语法
- ng绑定和ng href问题.ng href未从控制器加载数据
- 如何在动态创建的节点上绑定函数