2

現在、meteorは、テンプレート定義から対応できる限られた数のイベントをサポートしています。この事前定義されたリストを超えたイベントに反応する方法が欲しいです。テンプレート内の可能なイベントのリストに、任意のイベント (カスタム イベントを含む) を自由に追加できるようにしたいと考えています。

私が持っていた 1 つのアイデアは、サポートされていないイベントをリッスンし、セッション変数を設定する jquery イベント ハンドラーをどこかにセットアップすることです。

$(form).submit( ->
    Session.set('formSubmitted', true)

そして、テンプレートをレンダリングするときにそのセッション変数を使用します。

Template.confirmation.submitted = ->
    return Session.get('formSubmitted')
<template name="confirmation">
    {{#if submitted}}
        <!-- do whatever -->
    {{/if}}
</template>

しかし、これは単なる回避策であり、実際に問題を解決するものではありません。これを行う本当の流星の方法はありますか?これは、新しいSpark実装でできることですか?

注:ここで送信イベントを使用しているという事実は無視してください。クリック イベントを送信ボタンにバインドできることはわかっていますが、それは重要ではありません。

注2:この質問に対する受け入れられた回答も単なる回避策です。

4

1 に答える 1

1

renderedコールバックは、これを行うために使用するものです。

http://docs.meteor.com/#template_rendered

コールバックは、必要な dom 要素を見つけるために使用する必要があるテンプレート インスタンスを提供します: http://docs.meteor.com/#template_inst

以下の未テストの例;)

Template.foo.rendered = ->
  $(this.find("form")).submit ->
    Session.set 'formSubmitted', true

ビューを切り替えるよりもセッション変数を使用することは、好みの問題だと思います。

テンプレートを切り替えるアプリの状態をセッションに保存しています。さらに、バックボーン パッケージは、意味のある URL を提供するのに非常に便利です。

于 2012-09-28T19:57:53.157 に答える