javascript - knockout : click & checked bindings in one element

标签 javascript knockout.js knockout-2.0

我有一组限制,以及用于启用/禁用限制的复选框。但是复选框不起作用

jsFiddle

function Limit(start, end)
{
    var that = this;

    this.start = start;
    this.end = end;

    this.label = ko.computed(function(){
        return that.start + ' - ' + that.end;            
    });
}

function ViewModel()
{
    var that = this;

    this.limits = [new Limit(1,2), new Limit(3,4), new Limit(4,5)];

    this.activeLimit = ko.observable(that.limits[0]);

    this.changeActiveLimit = function(limit)
    {
            that.activeLimit(limit);
    }
}

ko.applyBindings(new ViewModel());​

我的 HTML

<div data-bind="foreach: {data: limits, as: 'limit'}">
 <input type="checkbox" data-bind="click: $root.changeActiveLimit, checked: limit.label == $root.activeLimit().label"/>
    <span data-bind="text: limit.label"/> 

</div>

最佳答案

如果您像下面那样修改您的 viewModel,它将起作用

function ViewModel()
{
    var that = this;

    this.limits = [new Limit(1,2), new Limit(3,4), new Limit(4,5)];

    this.activeLimit = ko.observable(that.limits[0]);

    this.changeActiveLimit = function(limit)
    {
            that.activeLimit(limit);
            return true;
    }
}

return true 是这里的关键部分。

这是一个工作 fiddle http://jsfiddle.net/tariqulazam/WtPM9/10/

关于javascript - knockout : click & checked bindings in one element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555293/

相关文章:

javascript - JavaScript 中的 If/and/if 语句

javascript - 创建 'under the rug' 视差页脚?

javascript - 当所有字段都填满时启用按钮

knockout.js - 当用户在 SlickGrid 中选择了五个或更多项目时启用按钮

javascript - Knockout 附加 observables w/characters

javascript - 如何在浏览器中使用 npm 模块?甚至可以在本地(PC)中使用它们?

knockout.js - KnockoutJS 如何将 textarea 值属性绑定(bind)到函数

javascript - 使用 knockout 映射 JSON 无法填充类型定义的对象属性

javascript - 在 Knockout JS 中处理多维数组的最佳方法是什么?

php - 自动更新 ext.data.store 上的新数据