14

Handlebars テンプレート内にインライン スクリプトを含める方法はありませんか?

<script type="text/x-handlebars">
    I'm a row of type "foo"
    <script type="text/javascript">alert('hi');</script>
</script>

上記のテンプレートがレンダリングされると、インライン スクリプトが削除されます。

私がやろうとしているのは、ページに disqus ウィジェットを含めることです。ウィジェットは基本的にマークアップ + disqus スクリプトです。

ウィジェットは、アプリのサブビューに含まれます。サブビューはデフォルトでは表示されませんが、Ember アプリ コードのロジックに従って表示されます。</p>

4

1 に答える 1

10

そのウィジェットをカスタム Ember.View でラップして、ラッパー ビューの didInsertElement で、ウィジェットのインスタンス化と DOM への追加を処理する必要があります。Ember は、特にハンドルバー テンプレート内で、DOM 操作を完全に制御できることを期待しており、ハンドルバー マジックと Ember.View 作成の組み合わせでそれを行います。カスタムビューを定義したら:

MyApp.DisqusView = Em.View.extend({
    didInsertElement: function() {
        // create widget and append it to this.$()
    }
});

ハンドルバー テンプレートで使用できます。

{{view MyApp.DisqusView}}

安全上の理由から、ビューに Script タグを追加するべきではありませんが、JS を直接実行してウィジェットを挿入する必要があります。

于 2012-05-03T11:35:14.413 に答える