3

次のように、ハンドルバー ヘルパーから html オブジェクトを送信する必要があります。

    Handlebars.registerHelper('helper', function () {

       //Create an input object
       var inp=$('<input type="text" name="name">');

       //How to return 'inp' object without using Handlebars.SafeString
       return inp;

    });

「Handlebars.SafeString()」を使用して html 文字列を返すことができることは理解していますが、これは私には役に立ちません。何らかのイベントが割り当てられた html オブジェクトを渡す必要があります。

出来ますか?

4

2 に答える 2

0

まさにこの種の機能を念頭に置いて、DOMBars と呼ばれるハンドルバーのフォーク/拡張が存在します。

https://github.com/blakeembrey/dombars

作者によって廃止されましたが、まだ使用できますが、廃止されたライブラリを使用すると、予期しない問題が発生する可能性があることに注意してください。

ヘルパー関数が DOM 要素を返すこともできる点を除いて、ハンドルバーとまったく同じように機能します。

テンプレート:

<script id="template">
    <p>Something {{{ helper data }}}</p>
</script>

コード:

Handlebars.registerHelper('helper', function (text) {

   // Create an input jQuery Object and bind whatever callbacks you want to it.
   var inp = $('<input type="text" name="name">' +  text '</input>');
   
   // Return the DOM Object
   return inp.get(0);
});

template = DOMBars.compile($('#template').html())
const html = template({ data: "Something" })
于 2020-08-25T15:09:06.563 に答える