Ember.js在url中有多个param

时间:2015-10-13 13:45:34

标签: javascript ember.js coffeescript

我有一条路线/changepassword,我需要添加2个参数:iduserresetcode。看起来像这样:/changepassword?iduser=123&resetcode=foo

我阅读了与此相关的其他内容(12),但我无法弄清楚这一点。我没有任何ember的经验,我被要求在我工作的地方做一些修改。我们正在使用 ember 1.5.1

我尝试了this,但是它让我这样:Uncaught Error: Assertion Failed: Error: Assertion Failed: The URL '/changepassword?test1=aaasd' did not match any routes in your application

[编辑]

感谢@GJK,我知道我需要的是查询参数,没有路径参数。

现在,我的代码如下所示:

路线:

module.exports = App.Router.map ->
      ...
      ...
      @resource('change_password', path: '/changepassword')

控制器:

module.exports = App.ChangePasswordController = Ember.Controller.extend

  needs: ['config', 'viewport', 'application']

  queryParams: ['test']
  test: null
  ...
  ...

但是,当我访问http://localhost:3333/#/changepassword?test=foo时,正在转换为:http://localhost:3333/#/changepassword

[老]

这是我的路线:

module.exports = App.Router.map ->
  @resource 'index', path: '/', ->
  @resource('account_sign_up', path: '/signup')
  @resource('unsubscribe', path: '/unsubscribe')
  @resource('change_password', path: '/changepassword/:test1/:test2')

有任何帮助吗?谢谢!

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点:

1)使用带有多个参数的params变量:

@resource('change_password', path: '/changepassword/:iduser/:resetcode')

model : function (params) {
  console.log(params.iduser);
  console.log(params.resetcode);    
}

2)使用http://guides.emberjs.com/v1.10.0/routing/query-params/(我不确定是否可用于1.5)..所以我没有包含示例..