Lütfen 1.11.0'dan itibaren this.route
yalnızca yerine kullanıldığını unutmayın this.resource
. Kaynak: http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *
Bu göz at mesaja ayrıntılı bir açıklama için.
Bu, bu gönderinin kaba bir özetidir (biraz değiştirdim):
Kaynak ve rota değişikliğinden bu yana pek çok insanın bu ikisinin anlamı ve isimlendirmeyi nasıl etkilediği konusunda kafası karışık. İşte fark:
- kaynak - bir şey (bir model)
- rota - şeyle yapılacak bir şey
Bu, bir yol ve kaynak kullanan bir yönlendiricinin şöyle görünebileceği anlamına gelir:
App.Router.map(function() {
this.resource("posts", { path: "/" }, function() {
this.route("new", { path: "/new" });
});
this.route("another", { path: "/another" });
});
Bu, aşağıdaki rotaların oluşturulmasına / kullanılmasına neden olur:
- PostsRoute, PostsController, PostsView
- PostsIndexRoute, PostsIndexController, PostsIndexView
- MesajlarNewRoute, PostsNewController, PostsNewView
- AnotherRoute, AnotherController, AnotherView
Bu örnekte gördüğümüz gibi, kaynak, kullanılan / yaratılan Denetleyicilerin, Yolların ve Görünümlerin isimlendirilmesini etkiler ("yeni" yol, "postalar" kaynağının alt öğesi olarak değerlendirilir). Orijinal kaynaktan alıntı yapın (değiştirdim, çünkü Patrick M'nin yorumlarda doğru bir şekilde işaret ettiği gibi rahatsız ediciydi):
Bu, bir kaynak oluşturduğunuzda yepyeni bir ad alanı oluşturacağı anlamına gelir. Bu ad alanı, kaynağın adını alır ve tüm alt yollar ona eklenecektir.
Güncelleme: iç içe geçmiş kaynaklarla daha karmaşık örnek
Birden çok iç içe geçmiş kaynak içeren aşağıdaki daha karmaşık örneği düşünün:
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" });
});
Bu durumda, kaynak comments
yepyeni bir ad alanı oluşturur. Bu, bu durumda ortaya çıkan rotaların aşağıdaki olacağı anlamına gelir. Gördüğünüz gibi, yorum kaynağı için Rota, Denetleyici ve Görünüm, ana yolun adıyla ön ekli değildir. Bu, bir kaynağı başka bir kaynak içine yerleştirmenin ad alanını sıfırladığı anlamına gelir (= yeni bir ad alanı oluşturur).
- PostsRoute, PostsController, PostsView
- PostsIndexRoute, PostsIndexController, PostsIndexView
- MesajlarNewRoute, PostsNewController, PostsNewView
- CommentsRoute, CommentsController, CommentsView
- CommentsNewRoute, CommentsNewController, CommentsNewView
- AnotherRoute, AnotherController, AnotherView
Bu davranış aynı zamanda Ember Docs'da açıklanmıştır .