1

我有这个带有 emberjs 的任务创建者和一个在 scala 中使用 play 框架制作的 API。

当我单击删除按钮时,我会转到 taskController 执行此操作:

Tasks.TaskController = Ember.ObjectController.extend({
    deleteTask: function(){
       var task = this.get('model');        
       task.deleteRecord();
       task.get('store').commit();
    }
});

它会发送一个 DELETE 请求到

http://localhost:9000/api/tasks

但它并没有把 id 放在最后

http://localhost:9000/api/tasks/:id

我即使在 API 中添加一个路由来获取 JSON 并从那里删除,但提交并没有发送任何内容。

在 router.js 我有这样的东西

Tasks.Router.map(function() {
    this.resource('tasks', {path: '/'}, function(){
        this.route('new');
        this.resource('task', {path: '/:_id'}, function(){
            this.route('edit', {path : '/:_id'});
            this.route('deleteTask', {path : '/cenas/:_id'});
            this.route('delete', {path : '/cenas/:_id'});
        });
        this.route('deleteTask', {path : '/cenas/:_id'});
        this.route('delete', {path : '/cenas/:_id'});
    });
});

该模型

Tasks.Task = DS.Model.extend({
    _id: DS.attr('string'),
    idUser: DS.attr('string'),
    label: DS.attr('string'),
    date: DS.attr('date')
});
4

1 回答 1

1

您是否将 _id 映射为您的主键?

 App.Adapter.map('App.Person', {
    primaryKey: '_id'
  });

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/serializer.js#L79

除了丢失的部分之外,您的初始代码块应该可以使用。您不需要定义删除路由,因为您的应用程序永远不会转换到实际的删除路由。

于 2013-04-30T16:30:18.087 回答