具有无限可选参数的骨干路由

时间:2014-09-18 01:24:48

标签: javascript html backbone.js backbone-routing

在我的应用中,我有两个重要的模型:ContentCollection和ContentItem。

每个ContentCollection都有许多ContentCollections和ContentItems。您可以将ContentCollections视为文件夹,将ContentItems视为文件。所以,这种结构需要成为可能:

-  ContentCollection
   \- ContentCollection
      \- ContentCollection
         \- ContentCollection
            \- Item
            \- Item
      \- ContentCollection
         \- Item
-  ContentCollection
   \- Item
   \- Item
-  Item
-  Item

我想为ContentCollections和ContentItems创建show路由。

/home/collections/{id}

和...

/home/items/{id}

和...

/home/collections/{id}/collections/{id}/collections/{id}

和...

/home/collections/{id}/collections/{id}/collections/{id}/items/{id}

等等。

我是否有一种简单的方法可以优雅地处理骨干路径中的这种嵌套?

1 个答案:

答案 0 :(得分:3)

你需要一个能够匹配任何东西的全能路线......

var MyRouter = Backbone.Router.extend({
  '*collection': 'showCollection'
});

然后在你的行动中进行一些解析:

Controller = {
  showCollection: function (query) {
    segments = query.split('/')
  }
}