1

通常のコンポーネントとテンプレートとともに、ember プロジェクトでコンパイル済みのハンドルバー テンプレートを使用する必要があります。を使用して、コンパイル済みのテンプレートをember-cli-build.jsファイルにロードしましたapp.import()。プリコンパイル済みのテンプレートがオブジェクトに表示されるようになりました。これは、アプリの宣言とアプリの初期化の間でEmberファイルHandlebars.templatesにマップしました。Ember.TEMPLATES["precompiled-template"]app.js

オブジェクトを確認すると、オブジェクトである他のテンプレートとは異なり、 Ember.TEMPLATESプリコンパイルされたテンプレートがフォームの関数として存在します。function(context, options)

コンパイル済みのテンプレートを使用しようとすると、何も表示されません。何かご意見は?

編集 1: ルート テンプレート全体ではなく、小さな ui テンプレートについて話しているので、バインドを犠牲にしても構わないと思っています。

4

1 に答える 1

0

ヘルパーを使用してハンドルバー テンプレートを文字列に変換し、ドキュメント フラグメントを作成する方法を見つけました。

import Ember from 'ember';

export function helper(data/*, hash*/) {
  let precompiledTemplateFunction = Handlebars.templates[data[0]];
  return fragmentFromString(precompiledTemplateFunction());
}

function fragmentFromString(strHTML) {
  return document.createRange().createContextualFragment(strHTML);
}

export default Ember.Helper.helper(helper);

利用方法:{{helper 'precompiledTemplate'}}

テンプレートを ember-cli-build.js ファイルにインポートしていますapp.import('vendor/path/to/precompiled/template');

ヘルパーを介して属性を渡すことは扱っていませんが、それほど難しくはないと思います。

于 2016-04-06T16:27:43.930 に答える