0
我正在使用twitter typeahead和knockout,並且我注意到在從typeaheads建議中選擇時,在chrome/explorer中輸入綁定的observable不會更新。爲了更新它,你必須在你選擇了其中一個建議之後進行擊鍵(如空格)。輸入/忽略輸入是不夠的(但在Firefox中工作)。Twitter typeahead,KnockoutJS沒有在Chrome/Explorer中觸發onchange/update observable
請通過以下方式撥弄鉻/探險VS Firefox的測試:
http://jsfiddle.net/s415L158/5/
var viewModel = {
city:ko.observable()
}
var cities = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: $.map(["Stockholm","Oslo","Copenhagen"], function(city) { return { value: city }; })
});
cities.initialize();
$('#typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
name: 'cities',
displayKey: 'value',
source: cities.ttAdapter()
});
ko.applyBindings(viewModel);
任何想法如何解決這一問題?
更新:
重現:
- 開始輸入從建議輸入
- 選擇 '斯德哥爾摩' 'S'
- 無焦點的輸入可觀察到沒有更新
同樣工作,如果你不希望與預輸入插件手動觸發'change'事件纏住你的視圖模型的邏輯: '.on('typeahead:selected',function(e,sel){$(this).change(); });' – Tyblitz 2015-03-02 23:10:27