[英]Ember.js Wildcard URL
手動轉換為通配符路由並在末段* /:category_name處添加動態段的任何余燼方法,因此我可以手動構建“面包屑url版本”示例,假設用戶輸入了/ banana,則需要轉換用戶也可以輸入/ Groceries / Healthy / Fruit / Banana ....雜貨,健康,水果也可以輸入,因此/ Fruit可以轉換為/ Groceries / Healthy / Fruit ...我可以使用窗口使它工作.history.replaceState位於路線的模型鈎子上,但是很奇怪,它僅在刷新或由用戶輸入時才起作用,而在轉換模板時不起作用,謝謝大家
原樣路線
this.route('products', function(){
this.route('wildcard_handler', {path: '*/:category_name'});
this.route('handler', {path: '/:category_name'})
});
案例回顧:
情況1:
用戶輸入/ products / banana
-重定向到/產品/雜貨/健康/水果/ 香蕉
用戶輸入/ products / fruit
-重定向到/產品/雜貨/健康/ 水果
情況2:
用戶輸入/產品/ 雜貨
很好,是正確的。
情況3
用戶輸入/產品/雜貨/小吃
-不存在,所以404重定向。
所有這些麻煩只是為了為我正在構建的新電子商務制作更好的用戶體驗,通常建議的方法是僅使用一個動態細分
喜歡
this.route('products', function(){
this.route('handler', {path: '/:category_name'})
});
這很公平,但是構建面包屑URL更好
再次感謝您
情況1:如果您想在解析模型之前將用戶重定向到其他路線,則可以使用beforeModel()
掛鈎。 您還可以使用redirect()
掛鈎將用戶重定向到另一條路由。 例如(當用戶訪問/ products / fruit時,您可以在redirect
掛鈎中將其redirect
到product / groovry / healthy / fruit),
redirect(model, transition) {
this._super(...arguments);
this.transitionTo('products.groceries.healthy.fruit');
}
請參考此鏈接以了解路由中的預定義掛鈎。
情況3:參考此鏈接可了解應用程序中的通配符路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.