簡體   English   中英

從Ember Pre1到Pre4:每條路線有多個動態網段? 更新:動態段的允許語法是什么?

[英]From Ember Pre1 to Pre4: Multiple dynamic segments per route? Update: What is the allowed syntax for dynamic segments?

我目前正在嘗試將基於pre1的Ember遷移到當前版本pre4。 在我的pre1代碼中,我定義了一條路線,如下所示:

formCreated : Ember.Route.extend({
        route : '/genre=:genre/sorting=:sorting/location=:location/range=:range/time=:date/:timeFrame',
....
})

這條路線對我來說效果很好,但是現在我正在努力用pre4模仿這種行為。 這是我的方法:

App.Router.map(function() {
  this.route("/");
  this.route("formCreated", { path: "/genre=:genre/sorting=:sorting/location=:location/range=:range/time=:date/:timeFrame" });
});
App.FormCreatedRoute = Ember.Route.extend({
  serialize: function(context, params){
    // here i am returning a hash containing all the dynamic segments
  }
});

怎么了? 當應用進入狀態時,URL無法正確更新。 我看到這個結果:

/ genre =:類型/排序=:排序/位置=:位置/范圍=:范圍/時間=:日期/ 6:00-19:00

因此,我的大部分動態細分都不會得到更新。 我確保我的自定義序列化方法返回一個適當的哈希對象,其中為每個動態段設置了一個屬性。

在pre4中,每條路線是否仍有多個動態細分,還是我必須切換到某些路線嵌套方法或類似方法?

更新:找到根本原因:我剛剛發現錯誤是由於我使用該路由的語法而發生的。 我將其更改為以下內容(將“ =”替換為“ /”):

this.route("formCreated", { path: "/genre/:genre/sorting/:sorting/location/:location/range/:range/time/:date/:timeFrame" });

是否有關於如何構建路徑的任何文檔? 自ember-pre1起,語法似乎已更改。 我希望有一個用戶友好的URL,並且許多斜杠使閱讀變得困難。 還是一個規則,即一個段始終必須以“:/”開頭?

您將需要使用資源嵌套,如此此處所述

App.Router.map(function() {
    this.route('/');
    this.resource('genre', { path: '/genre/:genre_id' }, function(params) {
        this.resource('sorting', { path: '/sorting/:sorting_id' }, function(params) {
            ...
        });
     });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM