問題タブ [ember-router]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ember.jsでネストされたルートを明確にするにはどうすればよいですか?
同じサブリソースを持つ2つのリソースがあります。
問題は、emberルーターが、階層全体からではなく、現在のルートと親ルートだけからルートオブジェクトの名前を作成することです。/posts/:id/comments/new
したがって、とオブジェクトの両方をルーティングしようとし/products/:id/comments/new
ますApp.NewCommentRoute
。これを修正するにはどうすればよいですか?
この投稿は、GitHubの問題を基にしています。
ember.js - Ember.jsを使用したハッシュバンURL
Router
「ハッシュバン」URLを使用するように設定しようとしています( #!
)。
私はこれを試しましたが、明らかに機能しません:
これはEmberで行うことができますか?
javascript - ember のオブジェクトを含むパスにリダイレクトするにはどうすればよいですか?
Ember.js でデータ駆動型のメニュー システムをまとめようとしています。JavaScript は次のjs/nodal.js
とおりです。
HTML は次のようになります。
私が望むのは、ユーザーが/menu/root
ページを開くとすぐにリダイレクトされることです。これまでのところ、これを機能させるための適切な呪文を見つけることができませんでした. 上記をロードすると、次の例外が発生します。
直接ロードindex.html#/menu/root
すると機能します-機能していないのはリダイレクトだけです。this.transitionTo
IndexRoute 定義の行を次のように置き換えます。
は/menu/undefined
リダイレクトしますが、 ではなくにリダイレクトし/menu/root
ます。それは醜く、明らかに壊れています。
私は何を逃したのですか?
編集
提案どおり、ArrayController を追加してみました。
これにより、新しいエラーが発生します。
ember.js - New Router APIのルートとリソースの違いは何ですか?
Route
aとaの違いを理解しようとしていResource
ます。私が理解する方法は、オブジェクトResource
のサブパスRoute
を別のRoute
オブジェクトに設定するのに役立ちます。しかし、パスに対してもデフォルトの名前マッピングが行われていると考えると、それは不明確です。
ember.js - 以前のルートを取得するにはどうすればよいですか?
現在のコントローラーで以前のルーターを取得するにはどうすればよいですか。
ember.js - ember.js で複数セグメント化されたキャッチオール ルートを定義する
私は Ember.js を使用しています。ユーザーがリソースに一致しない URL に移動した場合に、ユーザーをアプリケーションのルートに戻すキャッチオール ルートを作成したいと考えています。(履歴APIを使用しています)これを次のように実装しました:
私の質問は次のとおりです。パス内のセグメント数に関係なく、リソースに解決されていないパスに一致する単一のキャッチオール ルートを定義できますか?
私は Ember.VERSION を使用しています: 1.0.0-rc.1
ember.js - アサーションに失敗しました: アウトレット (メニュー) が指定されましたが、このビューはルート レベルでレンダリングされます
アプリケーションのルート レベルで追加のアウトレットをレンダリングしていたときに、この奇妙なアサーション エラーが発生しました。
これは私が使用するコードです:
というテンプレートがありmenu
ます。これは私の App.ApplicationRout です
しかし、それはエラーをスローしています:assertion failed: An outlet (menu) was specified but this view will render at the root level
ember.js - 残り火で崩壊経路を表示する
Ember で崩れたパスを表示したい。現在のパスを反復するにはどうすればよいですか?
私の意見では、2 つのアプローチがあります。
エンバーウェイ
編集:以下の私の答えを見てください
パンくずリストを表示する現在のステータスで、この質問を最新の状態に保ちます。この質問のリビジョンを参照して、履歴を確認できます。
ここにはいくつかの目標があります。
- ルート変更時にリッスン
- 現在のルートを見つける
- 現在のルートのリストを表示する
- ルート内のステップへの作業リンクを表示する
コントローラ
ルーター
テンプレート
現在取り組むべき問題は次のとおりです。
- URL にアクセスする
#/websites/8/pages/1
と、ブレッドクラムの出力は次のようになります: (すべてのスクリプト タグ プレースホルダーを削除しました
- URL は有効なルートである必要があります
- メニューはルートにハードコードされています。ここ
{{#linkTo}}
のように動的にしようとしましたが、 -observerをトリガーしません。transitionTo
currentPath
反対に
ほとんどは上記と同じですが、いくつかの違いがあります。location.hash
ブレッドクラムは、ルーターから取得するのではなく、ループすることによって作成されます。
ApplicationControllerは次のようになります。
ApplicationRouteでカスタム ハンドラーをサブスクライブする必要があります。
これまでのところ、別のアプローチが私には最適ですが、この方法のhistory
代わりにを使用するようにルーターを構成すると機能しなくlocation.hash
なるため、これは良い方法ではありません。
ember.js - ログインしていない場合、特定の (ほとんどの) ルートを禁止する
静的ページも含め、サイト全体で Ember を使用しています。
既存のアカウントを作成、ログイン、または編集するために、user.new、user.login、およびuser.editを使用して、devise apiをセットアップしました。
どのユーザーもアクセスできます
編集画面を表示します。ユーザーがログインしている場合にのみこれを可能にしたいと思います。そうでない場合、そのルートはたとえばログインページにリダイレクトする必要があります。
それを行う方法はありますか?
ember.js - ブラウザーの [戻る] ボタンをクリックすると、ネストされたルートが同じテンプレート/アウトレットにレンダリングされる
アプリケーションがユーザー モデルの選択を追跡するために必要なネストされたルート階層があります。メイン アプリケーション テンプレートを使用して、各ルートをそのテンプレートの単一のアウトレットにレンダリングしようとしています。これは、親から子へとルート階層をたどる際に機能します。
ただし、ブラウザの戻るボタンをクリックしてルート階層に戻ると、親ルートの renderTemplate フックは起動しません。これにより、子はアウトレットからフック解除され、何もレンダリングされなくなります。
次に例を示します。
テンプレートを使用:
そして、これがこのコードの jsfiddle です。リンクをクリックしてルートをたどり、ブラウザの [戻る] ボタンをクリックすると、アプリケーション テンプレートがレンダリングされ、アウトレットには何もフックされません。
再レンダリングを強制する方法はありますか、それとも間違った方法で行っていますか?