【问题标题】:Ember.js Nested folder like route (contain slash)Ember.js 嵌套文件夹,如路由(包含斜杠)
【发布时间】:2013-06-11 15:45:42
【问题描述】:

我正在构建一个带有文件管理器的应用程序,例如 Ember.js 的功能。我想要 ".../#/files/Nested/Inside/" 形式的嵌套文件夹的 URL,它适用于 linkTo;但是,如果我刷新(或直接转到 URL),我会收到错误消息“没有路由匹配 URL '/files/Nested/Inside'”。有没有办法让 Ember.js 在这种情况下工作?谢谢。

这是我目前的路线设置:

FM.Router.map(function() {
  this.resource('folders', { path: '/files' })
  this.resource('folder', { path: '/files/:path' })
})

FM.FoldersRoute = EM.Route.extend({
  model: function() {
    return FM.Folder.find('/')
  }
})

FM.FolderRoute = EM.Route.extend({
  model: function(params) {
    return ns.Folder.find(params.path)
  },
  serialize: function(folder) {
    return { path: folder.get('path') }
  }
})

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    哇,有趣的问题。它应该是可能的,但我自己没有尝试过,也没有在野外看到任何这样的例子。

    在后台,ember 使用 tildeio routerroute-recognizer 来解析路由。该路线的自述文件解释了如何define more elaborate routes 喜欢:

    router.map(function(match) {
      // this will match anything, followed by a slash,
      // followed by a dynamic segment (one or more non-
      // slash characters)
      match("/*page/:location").to("showPage");
    });
    

    因此,要使嵌套文件夹正常工作,您可以执行以下操作:

    FM.Router.map(function() {
      this.resource('folders', { path: '/files' })
      this.resource('folder', { path: '/files/*path' })
    })
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-16
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2013-07-20
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多