Ember アプリで (このアドオンを介して) Typeahead.js ライブラリを使用しており、1.10 より前の Ember バージョンでは成功していますが、Ember 1.10 へのアップグレードで問題が発生しています。
これまで、先行入力コンポーネントに渡されるテンプレートをコンパイルし、それを次のように先行入力ライブラリに渡すことに成功しました。
templates: {
// this.get('suggestionTemplate') is a string of handlebars template
suggestion: Handlebars.compile(this.get('suggestionTemplate')),
<other code>
}
ただし、これは Ember 1.10 では機能しません。このコード行を実行すると typeahead.js が次のエラーをスローするためです。
コード:
$el = $(html.suggestion).append(that.templates.suggestion(suggestion)).data(datasetKey, that.name).data(valueKey, that.displayFn(suggestion)).data(datumKey, suggestion);
エラー:
Uncaught TypeError: that.templates.suggestion is not a function
以前that.templates.suggestion
は、上記の最初のコード ブロックの値である は、オブジェクトsuggestion
を渡すことができ、実際のテンプレートをコンパイルする関数でした。HTMLBars では、that.templates.suggestion
は関数ではなく HTMLBars オブジェクトであるため、このコードは機能しなくなりました。
Ember 1.10 でこれと同じことを行い、以前の動作と一致するより良い方法はありますか?