如何使用jquery barrating插件连接knockout observable?

时间:2017-07-03 23:01:32

标签: javascript jquery knockout.js

http://antenna.io/demo/jquery-bar-rating/examples/

我正在使用带有knockout viewModel的jquery bar-rating插件。 现在,所有评级都必须手动选择, 但我想把变量(让我们说评级)变成可观察的 当我输入类似

的内容时更改栏
viewModel.rating(2);

在这种情况下,只会选择两个小节。

有想法怎么做吗?

1 个答案:

答案 0 :(得分:2)

您必须进行自定义绑定以初始化元素并在observable更改时更新其值。您可以尝试使用以下内容,但我还没有对其进行测试:

ko.bindingHandlers.barrating = {
  init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
      $(element).barrating();
  },
  update: function(element, valueAccessor, allBindings, viewModel, bindingContext){
      var value = ko.unwrap(valueAccessor());
      $(element).barrating('set', value);
  }
}

...

<select data-bind="barrating: myRatingObservable">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>