header.html を指定する layout.html を使用するグローバル ルートがあります。次の方法を知りたいです。
1) ヘッダーなしで、適切なフォーマットでログイン/サインアップ用のメイン ランディング ページを用意します。(Atmosphere の UserAccounts を使用していますが、フォーマットが異なります。理由はわかりません)。また、layout.js のヘッダーは削除できません。
2) ログイン/サインインすると、メイン ページに移動する必要があります。
誰かがどのようにアドバイスできますか?
Router.configure({
layoutTemplate: 'layout', //This is where header is specified globally
waitOn: function() {
return [Meteor.subscribe('notifications')]
}
});
Router.route('/', {
name: 'auth'
}); //added this new line
Router.route('/posts', {
name: 'home',
controller: NewPostsController
});
var requireLogin = function() {
if (! Meteor.user()) {
if (Meteor.loggingIn()) {
this.render(this.loadingTemplate);
} else {
this.render('accessDenied');
}
} else {
this.next();
}
}
Router.onBeforeAction('dataNotFound', {only: 'postPage'});
Router.onBeforeAction(requireLogin, {only: 'postSubmit'});
これは、グローバルに定義された layout.html です。
<template name="layout">
<div class="container">
{{> header}}
{{> errors}}
<div id="main">
{{> yield}}
</div>
</div>
</template>
@Chase の提案後に更新します。- ルーティングで機能し、ヘッダーがなくなりました。- ただし、フォーマットは Web サイトとは異なります。
http://useraccounts.meteor.com/のように見えるはずですが、私が持っているものを以下に示します