Knockout.js 当用户在网格中选择了五个或更多项目时,启用按钮

Knockout.js 当用户在网格中选择了五个或更多项目时,启用按钮,knockout.js,slickgrid,Knockout.js,Slickgrid,我有一个插件,用户可以使用复选框selectcolumn插件选择行 我有一个html按钮,我希望数据绑定提交按钮仅在用户选择了五行后才可见,或者如果用户取消选中足够多的行,则禁用该按钮,直到选中的行数少于五行 <button data-bind="click: submit, enable: hasSelectedFivePolicies">Submit</button> 以下一行: var hasFive = gridUnredeemed.getSelectedRow

我有一个插件,用户可以使用
复选框selectcolumn
插件选择行

我有一个html按钮,我希望
数据绑定
提交按钮仅在用户选择了五行后才可见,或者如果用户取消选中足够多的行,则禁用该按钮,直到选中的行数少于五行

<button data-bind="click: submit, enable: hasSelectedFivePolicies">Submit</button>
以下一行:

var hasFive = gridUnredeemed.getSelectedRows().length >= 5;
不足以使敲除在
getSelectedRows()
HasselectedFivePolicys
之间创建可观察的依赖关系

不仅如此,即使创建了依赖项,它仍然不够,因为当
getSelectedRows
发生更改时,不会通知Knockout

您需要手动订阅
onSelectedRowsChanged
事件,并相应地更改
hasSelectedFivePolicies
可观察值

例如(假设
gridunreleased
是对网格实例的引用):


请向我们展示您的代码的其余部分。我们需要看看你的观测值是如何定义的。谢谢你,我不得不订阅了
onSelectedRowsChanged
,我知道我现在缺少什么了。
var hasFive = gridUnredeemed.getSelectedRows().length >= 5;
gridUnredeemed.onSelectedRowsChanged.subscribe(function(e) {
    var hasFiveRecalc = gridUnredeemed.getSelectedRows().length >= 5;
    self.hasSelectedFivePolicies(hasFiveRecalc);
});