Batman.js中'index'操作的NamedRouteQuery是什么

时间:2013-12-27 01:38:12

标签: javascript batman.js

我正在尝试在保存后重定向到索引操作,并且无法找出正确的NamedRouteQuery。我试过了:

  • @routes.posts.index
  • `App.get(' routes.posts.index&#39)
  • `App.get(' routes.posts&#39)。索引
  • `App.get(' routes.posts&#39)
  • `App.get('路线&#39)。帖

等,但最终唯一有效的是@redirect '/posts'。字符串版本是index操作的唯一选项吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以完成这项工作。

将参数传递给Batman.redirect

调用@redirect在之前/之后处理控制器,然后委托给Batman.redirectBatman.redirect可以采取:

  • 一个字符串,被视为目标网址("/posts"
  • 一个Batman.Model,重定向到索引(Batman.redirect(MyApp.Post)重定向到"/posts"
  • 一个Batman.Model实例,重定向到“show”(Batman.redirect(thisPost)重定向到"/posts/#{thisPost.id}" *)
  • 包含params的对象:
    • Batman.redirect({controller: "posts", action: "index"}) => /posts
    • Batman.redirect({controller: "posts", action: "edit", id: 6}) => /posts/6/edit

*实际上调用record.toParam?() || record.get('id')来获取参数

所以,您可以使用@redirect({controller: "posts", action: "index"})@redirect(App.Post)重定向到索引操作。

使用NamedRouteQuery

我对NamedRouteQuery不太满意,但不管怎样,这里有一些例子:

  • App.get('routes').posts().path() => /posts
  • App.get('routes').posts(6).path() => /posts/6
  • App.get('routes').posts().get(6).path() => /posts/6
  • App.get('routes').posts().get(6).get('edit').path() => /posts/6/edit

您可以使用其中一个来获取您的网址字符串,然后将字符串传递给@redirect

希望这有帮助!