JsViewsとTypeahead.jsを併用するとバインディングが期待通りに動かない
おそらくJsViewsに限った話ではなくて、双方向バインディングをやってくれるテンプレートエンジンなりフレームワーク全般にかかるであろう事案。
原因
上記イベントが発生する場合にchangeイベントが発火されないため、バインディングが動作しない。
対策
無理やりchangeイベントを発火する。
$(".suggest").on("typeahead:autocompleted", function (e) { $(e.target).trigger("change"); }); $(".suggest").on("typeahead:selected", function (e) { $(e.target).trigger("change"); });
厳密にやると、typeaheadのイベントを拾う→ユーザキー操作なしでblurが発生するタイミングでchangeを発火すべきではあるのだけど、バインディングの問題に対処するのであれば、これで十分。