Knockoutjs - 检查无线电不调用函数

Knockoutjs - checked radio doesn't call function

是否有任何方法可以将选中的无线电与向我的数组添加新对象的函数绑定?

JS

ViewModel = function(path) {
    var self = this;

    self.regions = ko.observableArray();

    self.addRegion = function() {
        self.regions.push(new Ticketon.Performance.Region());
    };
}

Region = function() {
    var self = this;

    self.name = ko.observable();
    self.description = ko.observable();
};

HTML

<label><input type="radio"  name="regionCount" checked="checked"> One region</label>
<label><input type="radio" name="regionCount" data-bind="checked: addRegion"> Two regions</label>

这什么都不做...当我在 CLICK 上更改 CHECKED 时它有效,但是当我在收音机上点击更多次时,阵列中有更多区域。

checked 绑定将值(您将使用 value 属性指定)存储到可观察对象。它不期待一个功能。

要实现您的目标,您需要使用 click 绑定。如果您想限制或切换区域数量,该函数将需要执行此逻辑。