去掉js可观察数组和复选框,选中绑定失败
Knockout js observable arrays and checkbox, checked bind fail
我想弄清楚为什么当复选框更改时文本输入字段不活动?
<form data-bind="foreach: editables">
<input type="checkbox" name="edit" data-bind=" checked: active" />
<input type="text" name="edit" data-bind="value: name, disable: !active" />
<br/>
</form>
var viewModel = function () {
this.editables = ko.observableArray(
[{
active: true,
name: "mi"
}, {
active: false,
name: "yo"
}, {
active: true,
name: "cel"
}]);
};
ko.applyBindings(new viewModel());
http://jsfiddle.net/legolito/2FAJN/2/
我希望有人能帮助我。(英语不是我的母语,所以如果我的语法有问题,我很抱歉)
您是否考虑过将active
属性设置为observable
?
http://jsfiddle.net/tzG3t/
var viewModel = function () {
this.editables = ko.observableArray(
[{
active: ko.observable(true),
name: "mi"
}, {
active: ko.observable(false),
name: "yo"
}, {
active: ko.observable(true),
name: "cel"
}]);
};
ko.applyBindings(new viewModel());
因为您没有在ko.observableArray
中使用ko.observable
请参阅observableArrays 的淘汰文档
关键点:observableArray跟踪阵列中的对象,而不是这些对象的状态
简单地将一个对象放入observableArray中并不能使该对象的属性本身是可观察的。当然,你可以如果你愿意,让这些属性变得可观察,但这是一个独立选择。observableArray只跟踪它的对象保持,并在添加或删除对象时通知侦听器。
因此,让它变得可观察并解决问题
Fiddle:http://jsfiddle.net/2FAJN/4/
相关文章:
- ListView的ItemTemplate内的自定义HtmlControl的数据绑定失败
- 绑定未来的类在 jQuery 中失败
- ES6/React第二项绑定失败
- 为什么Angular 1.5双向绑定在将作用域变量传递给组件绑定时失败
- 去掉js可观察数组和复选框,选中绑定失败
- KnockoutJS 伪绑定在 IE8 中失败
- Angularjs 数据绑定失败,Angular UI-Bootstrap typeahead
- 在绑定或删除点击时 ATTR 失败
- ObservableArray 绑定失败,并伴有 knockoutjs
- 失败绑定 Angular 承诺$scope变化
- 绑定事件在Chrome上失败,但在浏览器返回时在Firefox中正常
- 为什么我的Knockout Radio按钮在使用单击绑定的另一个元素内时会失败
- 元素上的jQuery绑定事件失败
- 使用.live()和item.length绑定事件失败
- AngularJS中将筛选器结果绑定到输入失败
- 成功/失败的自定义绑定
- js基本示例-是什么导致这个数据绑定失败
- Angularjs:当模型改变时,单选按钮检查状态绑定模型值失败
- Ng-model绑定触摸事件输入的值失败
- 如何让angularjs绑定失败的请求?