1

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 でこれと同じことを行い、以前の動作と一致するより良い方法はありますか?

4

3 に答える 3