[解決済み] New Router APIにおけるルートとリソースの違いは何ですか?
質問
の違いを理解しようとしています。
Route
と
Resource
. 私の理解では
Resource
のサブパスの設定に役立ちます。
Route
オブジェクトのサブパスを別の
Route
オブジェクトに変換します。しかし、パスに対してもデフォルトのネームマッピングが起きていると考えると腑に落ちません。
どのように解決するのですか?
1.11.0以降にご注意ください。
this.route
の代わりに使われるのはthis.resource
. ソースは http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *
これを見てください ポスト をご覧ください。
この投稿の大まかな要約です(少し修正しました)。
リソースとルートへの変更以来、多くの人がこの2つの意味と命名に与える影響について この 2 つの意味と命名への影響について混乱しています。 ここでは、その違いについて説明します。
- リソース - 物 (モデル)
- ルート - そのモノに関係するもの
つまり、ルートとリソースを使ったルータは次のようになります。
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
});
this.route("another", { path: "/another" });
});
この場合、以下のようなルートが作成/使用されることになります。
- PostsRoute、PostsController、PostsView
- PostsIndexRoute、PostsIndexController、PostsIndexView
- PostsNewRoute、PostsNewController、PostsNewView
- AnotherRoute、AnotherController、AnotherView
この例からわかるように、リソースは使用/作成されるコントローラ、ルート、ビューの命名に影響を与えます("new" ルートは "posts" リソースの下位として扱われます)。原典を引用します(コメントでPatrick Mが正しく指摘したように、いらいらするので修正しました)。
これは、リソースを作成するたびに、まったく新しい 名前空間が作成されます。この名前空間は、リソースにちなんで名付けられ と名付けられ、すべての子ルートがそこに挿入されます。
更新: リソースをネストさせたより複雑な例
複数のリソースをネストした、より複雑な次の例について考えてみましょう。
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
this.resource("comments", { path: "/comments" }, function() {
this.route("new", { path: "/new" });
});
});
this.route("another", { path: "/another" });
});
この場合、リソース
comments
は全く新しい名前空間を作成します。つまり、この場合の結果のルートは次のようになります。
見ての通り、コメントリソースのルート、コントローラ、ビューには親ルートの名前がプレフィックスとして付いていません。
つまり、リソースを別のリソースの中に入れ子にすると、名前空間がリセットされる(=新しい名前空間が作成される)のです。
- PostsRoute、PostsController、PostsView
- PostsIndexRoute、PostsIndexController、PostsIndexView
- PostsNewRoute、PostsNewController、PostsNewView
- CommentsRoute、CommentsController、CommentsView
- CommentsNewRoute、CommentsNewController、CommentsNewView
- AnotherRoute、AnotherController、AnotherView
この挙動は Ember Docs .
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン