Ironルーターを使用しています。プロジェクトの一部のルートは、ユーザーがログインしている場合にのみレンダリングする必要があり、一部のルートはユーザーがログインしているかどうかに関係なくレンダリングする必要があります。registerHelper
ページかどうかを定義しようとしましたrequireLogin
が、何らかの理由でルートにログインが必要な場合でも、間違ったセクションがレンダリングされます。
レイアウト テンプレートは次のとおりです。
<template name="layout">
{{#if requireLogin}}
<!-- ... render route content or login form ... -->
{{#if currentUser}}
{{> yield}}
{{/if}}
{{#unless currentUser}}
{{> loginPage}}
{{/unless}}
{{/if}}
{{#unless requireLogin}}
<!-- ... render route content ... -->
{{> yield}}
{{/unless}}
</template>
情報を含むルート ページの例requireLogin
:
<template name="pageUser">
{{requireLogin true}}
<!-- ... some user page content ... -->
</template>
<template name="pageTermsOfUse">
{{requireLogin false}}
<!-- ... some Terms of use page content ... -->
</template>
そしてクライアントコード:
if (Meteor.isClient) {
Handlebars.registerHelper("requireLogin", function (requireLogin) {
console.log(requireLogin)
return requireLogin;
});
};
Aはユーザー ページと利用規約ページにconsole.log
戻る必要がありますが、代わりに次のようにログに記録します。true
false
undefined
undefined
true
requireLogin
が True に設定されている場合でも、セクション{{#unless requireLogin}}
がレンダリングされます。この問題を解決する方法についての提案が役立つ場合があります。