使Jquery Autocomplete或Select2插件在knockout foreach绑定中工作

时间:2014-09-23 01:13:18

标签: javascript jquery knockout.js autocomplete

我遇到了因敲除foreach绑定而产生的自动完成问题。 请查看jsfiddle http://jsfiddle.net/u05afbpp/1/

<table data-bind="foreach: cars" class="table table-striped table-bordered">
 <tr>
    <td>
        <span>Test</span>
        <input type="text" class="autocomplete"/>
    </td>
 </tr>
</table>

$(function() {
var availableTags = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
  "Groovy",
  "Haskell"
];
$(".autocomplete").autocomplete({
  source: availableTags
});
});

var viewModel = {
cars:ko.observableArray(),
myValue: ko.observable()
};
viewModel.cars.push("BMW");
viewModel.cars.push("Benz");
viewModel.cars.push("Renault");
ko.applyBindings(viewModel);

我该怎么做才能让它发挥作用?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

当页面开始渲染时,可能没有类.autocomplete的元素。这是你想要的吗? http://jsfiddle.net/G_sh/u05afbpp/6/

我已将以下代码移至准备好的功能,希望它能正常工作。

var viewModel = {
cars:ko.observableArray(),
myValue: ko.observable()
};
viewModel.cars.push("BMW");
viewModel.cars.push("Benz");
viewModel.cars.push("Renault");
ko.applyBindings(viewModel);