如何在Ember中制作正确的编辑路线?

时间:2016-07-03 19:27:44

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

目前,我的路线是这样的:

this.route('cards', function() {
  this.route('all');
  this.route('card', {path: ':id'});
  this.route('new');
});

我想为卡片制作edit路线。我希望像cards/1/edit这样的路线可以使其成为可编辑的。但我不确定如何继续这样做。如果我创建类似cards/1/edit的路由,如何在该路由上显示编辑表单,并向后端发送PATCH请求。

this.route('cards', function() {
  this.route('all');
  this.route('card', {path: ':id'}, function() {
    this.route('edit');
  });
  this.route('new');
});

但是,如果我制作一个像cards/edit/1这样的简单路线,我就可以将数据发送到后端,但之后会有如下内容:

this.route('cards', function() {
  this.route('all');
  this.route('card', {path: ':id'});
  this.route('new');
  this.route('edit', {path: ':id'});
});

这会抛出错误,指出cards/card不是路线。

2 个答案:

答案 0 :(得分:1)

这就是我过去所做的:

this.route('cards', function() { 
  //An index route for cards is implied.
  this.route('add', {path: '/add'});
  this.route('update', {path: '/update/:id'});
});

相应的网址(从隐含的牌/ index.hbs开始)将是:

希望这有帮助,

杰夫

答案 1 :(得分:0)

这是我使用的实际路线:

this.route('cards', function() {
  this.route('all');
  this.route('card', {path: '/:card_id'}, function() {
    this.route('edit');
  });
  this.route('new');
});

我要去编辑路线(cards/1/edit)来修改卡片。

感谢@Visualjeff