获取编辑路线的参数(/ foobar / 2 / edit)

时间:2014-11-13 16:19:22

标签: ember.js ember-data ember-router

我想知道如何在Ember.js中获取编辑路线的参数(ID)。

这就是我定义路线的方式:

this.resource('accounting', function() {

  this.resource('accounting.requests', { path: '/requests' }, function() {
    this.route('new');
    this.route('archived');
  });
  this.resource('accounting.request', { path: '/request/:request_id' }, function() {
    this.route('edit');
  });

});

现在我想通过此编辑路线/accounting/request/3/edit上的ID获取模型:

App.AccountingRequestEditRoute = Ember.Route.extend({

  model: function(params) {
    return this.store.find('request', params.request_id);
  }

});

但这不起作用,因为params为空。

这可以按预期工作,但编辑路线不会:

App.AccountingRequestRoute = Ember.Route.extend({

  model: function(params) {
    return this.store.find('request', params.request_id);
  }

});

1 个答案:

答案 0 :(得分:1)

当您在儿童路线时,您可以使用this.modelFor,例如:

App.AccountingRequestEditRoute = Ember.Route.extend({

  model: function(params) {
    return this.modelFor('request');
  }

});

因为要转到request.edit,您必须为其父资源request提供一个id或对象,要么直接转到将URL传递给浏览器的路由,要么间接转移到偶然发生链接编辑的其他路线。