DB に "Hello {{currentUser}}" のような文字列を含むフィールドがある場合、テンプレートにレンダリングされたときにその値が反応性を保持できるようにする方法はありますか? また、ヘルパーを介して実行し、文字列の置換を処理することで、独自の変数を出力に挿入できるかどうかも調べています。
考え?
DB に "Hello {{currentUser}}" のような文字列を含むフィールドがある場合、テンプレートにレンダリングされたときにその値が反応性を保持できるようにする方法はありますか? また、ヘルパーを介して実行し、文字列の置換を処理することで、独自の変数を出力に挿入できるかどうかも調べています。
考え?
これまでに思いついた1つの解決策:
データベースに保存されるメッセージは、「こんにちは、[ユーザー]、お元気ですか?」のようなものです。
次に、{{#each}} と定義済みのテンプレートを使用して、通常どおり DB からのメッセージをレンダリングします。
メッセージが実際にレンダリングされると、ヘルパーを介して渡します。ヘルパーはすべての [] を に置き換えて、<span class="$1"></span>
各項目を直接ターゲットにできるようにします。
メッセージ テンプレートの render() が呼び出されると、メッセージ本文に (スパンを含む) クリーニングおよび準備されたコンテンツが含まれていることがわかっているので、this.$('.user').each()
スパンの各インスタンスを使用してループします。
また、{{user}} への呼び出しのみを含む「placeholderUser」というページに特別なテンプレートを作成しました。Template.placeholderUser.user = function(){}
値を取得して反応性を維持するために、コードに追加しました。
うわー!構造を設定したので、「each」でループするときに、: を呼び出すことができます。
UI.insert(UI.render(Template.placeholderUser), el)
これにより、指定されたスパンでテンプレートがレンダリングされ、すべての反応性が維持されます。
とてもハックですが、うまくいきます。他のより良い解決策はありますか?