从KO绑定

时间:2018-01-28 13:43:29

标签: knockout.js binding nouislider

我的代码类似于this fiddle中示例的KO部分。

我需要添加滑块范围 [min,max]的动态初始化,因此我替换了javascript的第32行

ko.applyBindings(new model());

通过

var r = new model();
ko.applyBindings(r);
r.min(2222);
r.max(3333);`

2个输入文本已更新,但滑块未更新。

为什么不呢? ...以及如何让滑块显示初始化范围?

1 个答案:

答案 0 :(得分:0)

您必须确保只要通过代码(而非通过用户界面)更新minmax,就会调用滑块updateOptions

这可以通过手动订阅model.minmodel.max,或将逻辑放在ko.computed内来完成。必须在自定义绑定的init方法内创建依赖项。绑定元素后,此函数将执行一次

ko.computed(function() {
  element.noUiSlider.updateOptions({
    range: {
      'min': model.min(),
      'max': model.max()
    }
  });
});

如果您打算经常从DOM中删除这些元素并将其重新添加到DOM中,请确保附加正确的处理逻辑。