3

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);
});
4

1 に答える 1

9

私の場合、サンプル作業ですが、テキストボックスを離れると値がコンソールに記録されます。これがノックアウトのデフォルトの動作です。

http://jsfiddle.net/jLtPu/4/のように、オートコンプリートに選択関数を追加できます。それはあなたの問題を解決するはずです。

select: function(event, ui) {
    $(this).val(ui.item.value).change();
}
于 2013-01-08T20:04:05.830 に答える