0

私はこのテンプレートを持っています:

<template name="body">
  {{#if key}}
    {{> mite}}
  {{else}}
    {{> settings}}
  {{/if}}
</template>

<template name="settings">
  <h1>The settings</h1>
  <form class="form-inline">
    <input id='apiKey' type='text' name='apiKey' placeholder='your API-Key'>
    <button id='saveSettings' type='submit' class='btn'>save</button>
  </form>
</template>

<template name="mite">
  <div>
    <h3>...here with key</h3>
    <p>
      <a id="optout" href="#">not your key?</a>
    </p>
  </div>
</template>

ユーザーが「mite」テンプレートを表示するために必要なキーを設定できる設定フォームを表示すると。フォームを「送信」すると、ページがリロードされ、「mite」テンプレートが表示されます。

ダニのテンプレートで、「あなたの鍵ではないですか?」というリンクが欲しいのですが。または、キーを削除してから設定フォームを再度表示するもの。リロードで動作します...しかし、Meteor ですべてのリロードなしでこれを行うことはできませんか? 本文テンプレートで #if を使用してテンプレート パーツを「呼び出す」にはどうすればよいですか?

-- レナート

4

1 に答える 1

1

イベント ハンドラーをフォームにバインドし、preventDefault()送信を停止するために使用する必要があります。例えば

クライアント側のjs

Template.settings.events({
    'submit':function(event,template) {
        event.preventDefault();
        var apiKey = template.find('input[name=apiKey]').value;

        //..rest of logic to handle submit event
        Session.set("key",true);
    }
});

テンプレートヘルパーを使用して、Session.get("showthistemplate")別のテンプレートを表示するかどうかを決定できます:

Handlebars.registerHelper('key',function() {
    return Session.set("key",true);
});
于 2013-05-05T13:04:04.687 に答える