Güncelleme: URL'de neler olduğunu kontrol etmek için yönlendiricide beforeModel(transition)
kancasını kullanabilirsiniz.
http://example.com/products/manufacturer-209/series-881/tag-17143/none/494822/f kanunsuz
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel(transition) {
console.log(transition.params.products.choises)
// if you use this url: http://example.com/products/manufacturer-209/series-881/tag-17143/none/494822/flawless
// console log would be: "manufacturer-209/series-881/tag-17143/none/494822/flawless"
}
});
En azından ne önemli bilgileri filtrelemek ve yeri ayarlamaya this.transitionTo()
ile yönlendirebilirsiniz, böylece url'nin dinlenme var.
Aşağıdaki rotayı olabilir:
http://example.com/products/123/promotions/456
veya
İlk durumda
http://example.com/products/awesome_souce/promotions/monday_deal
, rotanız şu şekilde görünecektir: In
this.route('product', { path: "/products/:product_id"}, function() {
this.route('promotion', {path: "/promotions/:promotion_id"});
});
ikinci durumda, belki bu gibi:
this.route('product', { path: "/products/:product_name"}, function() {
this.route('promotion', {path: "/promotions/:promotion_name"});
});
Son olarak, rotanız işleyicileri (ilk durum için örnek) uygun modeller indirebilirsiniz:
// app/routes/product.js
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.findRecord('product', params.product_id);
}
});
---
// app/routes/product/promotion.js
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
// you can get access to the parent route model if you need for the api query
const product = this.modelFor('product');
return this.store.findRecord('promotion', params.promotion_id);
}
});
Eğer product
rotadan sadece param gerekiyorsa, bunun yerine bütün bir rekor döndürmek, örneğin sadece return params.product_name
olabilir, böylece bir subroute düzeyinde this.modelFor('product')
ile bir dizeye erişebilirsiniz.
seçenekleri ürün kimlikleridir? –
Kısa cevap yapamazsınız çünkü glob açgözlüdür ve gördüğünüz gibi, yolun sonuna kadar her şeyle eşleşir. – locks