我的代码类似于这个小提琴中示例的KO部分。
我需要添加滑块的范围值[min, max] 的动态初始化,所以我替换了 javascript 的第 32 行
ko.applyBindings(new model());
由
var r = new model();
ko.applyBindings(r);
r.min(2222);
r.max(3333);`
2 个输入文本已更新,但滑块未更新。
为什么不呢?。。。以及如何让滑块显示初始化范围?
必须确保每当通过代码(而不是通过 UI)更新min
或max
时,都会调用滑块的updateOptions
。
这可以通过手动订阅model.min
和model.max
来完成,或者通过将逻辑放在ko.computed
中来完成。必须在自定义绑定的init
方法中创建依赖项。此函数在绑定元素时执行一次。
ko.computed(function() {
element.noUiSlider.updateOptions({
range: {
'min': model.min(),
'max': model.max()
}
});
});
如果您计划经常从 DOM 中删除和重新添加这些元素,请确保附加正确的处置逻辑。