/
、/contacts
、/rules
などのようないくつかのルートを表示できるゲスト用に2つのレイアウトが必要です。また、認証されたユーザーにはもう1つ必要です許可されたルートに行く前にログインしてください。ルートのグループごとに2つのレイアウトを定義するにはどうすればよいですか?ember.jsの複数のレイアウト2.7.0
答えて
内の認証されたルートをネストすることによって、この問題を解決するためにあなたの利点にエンバーのルータを使用する方法があります:あなたにのみ表示ログインしているユーザーは、単にこのようAuthenticatedRouteMixinを使用する経路を設定したい場合ルート。ここでは例としてルータです:/contacts
と/rules
に行く
Router.map(function() {
this.route('contacts');
this.route('rules');
this.route('authenticated', { path: '/' }, function() {
this.route('settings');
this.route('profile');
});
});
は、任意の認証を必要としないだろうが、/settings
になり行きます。
path
オプションがauthenticated
ルートに渡されていることに注意してください。 /
に設定してURLに表示されないので、application.index
の代わりになります。これがあなたに奇妙に聞こえる場合は、インデックスページがin the Ember.js tutorialであることをお読みください。
私は@locksの提案を実装しました..ここにember-twiddle..https://ember-twiddle.com/f91a385096a2acb1f1e30be94b2b2879認証状態を維持するためのサービスが含まれています。 – kumkanillam
私は –
@ kumkanillamを探しているようですね、あなたはそのtwiddle URLをチェックしますか? – sheriffderek
答えは、ユーザーの状態を保存するサービスを維持することです。
次に、どのように編成したかによって、サービスをコントローラまたはルートに注入できます。だから - loggedIn
テンプレートには、ハンドルバー/ htmlbars if
ヘルパーを使用します。
{{#if loggedIn}}
render logged-in stuff...
{{/else}}
render message explaining that this is only for logged in users
{{/if}}
また、現在のセッションデータに基づいて別のルートにユーザーをリダイレクトすることもできます。特定の役割のルート全体を持つ場合や、役割に応じて異なる動作をするテンプレートの部分がある場合があります。
ログインしていないと、プロフィールページにアクセスできないことがあります。そのルートは完全に制限されていないか、ログインページにリダイレクトされる可能性があります。一方、ログインしていない場合は「hello sheriffderek」と表示されていた場合は、ログインボタンコンポーネントまたはテンプレートの一部になっている可能性があります。
さらに強力な「役割」アウトラインのためのEmberアドオンがあります。実際のユーザーには「編集」ボタンがあるかもしれないが、モデレータにとっては「フラグ」ボタンがあるかもしれないブログページを考えてみてください。この場合、どこかにネストされた完全に異なるルートを持つことはできません。
ほとんどの認証アドオン/ライブラリには、ある種のセッション状態を持つ「サービス」があります。しかし、テンプレート賢い、基本的な考え方は、JSのif/else文のようなものです。
if (helpful) {
this.upvote();
} else {
// something else
}
これが役立ちます。 :)
質問は言う - 「レイアウト」 – sheriffderek
コメントなしで投票!ついに私たちは分かち合い、学び、楽しんでいます。 – kumkanillam
https://blog.embermap.com/lowest-common-ancestor-fbf5d5313a1この投稿には、サービスが良いアイデアになる良い例がいくつかあります。 :) – sheriffderek
はember-simple-authアドオンを見てください:)
それはあなたのユースケースのためのミックスインを含む、すべての許可についての多くの有用なクラスを持っています。
/app/routes/protectedRoute.js
import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin);
- 1. Ember.jsテーブル内の複数の選択
- 2. 複数のレイアウト
- 3. エラー:Xercesの-2.7.0
- 4. JavaFx複数のレイアウト
- 5. 複数のレイアウトandroid
- 6. 複数列のレイアウト
- 7. hadoopのlegecy UI 2.7.0
- 8. Vaadin - 複数のタブシートのレイアウト
- 9. 複数行レイアウトのリストビュー
- 10. Rails - 複数のレイアウト質問
- 11. 複数列のCSSレイアウト
- 12. xmodmapを複数のレイアウト&
- 13. ブレークポイント2.7.0構文
- 14. Ember.js:複数のAjaxが単一のルートで呼び出す
- 15. 複数の列のレイアウトにフォーカスアウトラインのフラグメント
- 16. 1つのExpandableListViewの複数のレイアウト
- 17. AlertDialogの複数のレイアウト間の変更
- 18. マリオネットの複数のアプリケーションのレイアウト
- 19. Ember.js内に複数のjavascriptコンポーネントがあります
- 20. ember.jsに複数のルータがありますか?
- 21. 複数のレイアウトによるAndroidのナビゲーション
- 22. WPFリストボックスのレイアウト:複数の列
- 23. Yii2複数のレイアウトの問題
- 24. Androidのレイアウト複数の画面をサポート
- 25. Wordpress Newsのウェブサイト、複数のレイアウト、カテゴリベース?
- 26. ASP.NET MVCコアの複数のレイアウト
- 27. HTMLページのレイアウト - 複数のフォームタグ
- 28. Androidレイアウトの質問 - 複数のウィジェット
- 29. MVC - 複数のビューを含むレイアウト
- 30. laravelに複数のレイアウトがある
ようこそスタックオーバーフロー!これまでに試したことを確認するためのコードをいくつか表示してください。 –
私はember.jsに全く新しい初心者です。コードはありません。私はemberで多くのレイアウトをどのように使うことができるのかを理解したいだけです。 –