jquery-ui autocomplete select不会更新knockout observable属性

Abe*_*Abe 3 knockout-mapping-plugin knockout-2.0 knockout.js

JSFiddle:http://jsfiddle.net/abepark/rzeNC/7/

我有一个问题,从自动完成下拉列表中选择一个选项后,ko.observable属性Job.CompanyName没有更新.

无论如何更新ko.observable属性而不创建自定义绑定器?

var model = {
  Job: {
    CompanyName: "Test" 
  }
};

var InterviewViewModel = function (data) {
  ko.mapping.fromJS(data, {}, this);
  this.add = function (data) {
    console.log("click");
    console.log(this.Job.CompanyName());
  }.bind(this);
}

$("#CompanyName").autocomplete({
  source: ["Test", "cool", "what", "Example", "Cookies"]
});

var viewModel = new InterviewViewModel(model);
ko.applyBindings(viewModel);

viewModel.Job.CompanyName.subscribe(function (val) {
  console.log(val);
});
Run Code Online (Sandbox Code Playgroud)

Sła*_*iek 9

对我来说,当您离开文本框时,您的示例工作但值会记录到控制台中.这是淘汰赛的默认行为.

你可以在自动完成中添加select函数,如下所示:http://jsfiddle.net/jLtPu/4/.它应该解决你的问题.

select: function(event, ui) {
    $(this).val(ui.item.value).change();
}
Run Code Online (Sandbox Code Playgroud)