我有这个任务创建者带有emberjs和一个用scala制作的API和play框架。
当我点击删除按钮时,我会转到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')
});
答案 0 :(得分:1)
您是否已将_id映射为您的primaryKey?
App.Adapter.map('App.Person', {
primaryKey: '_id'
});
https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/serializer.js#L79
除了缺失的部分之外,事情应该适用于您的初始代码块。您不需要定义删除路由,因为您的应用程序永远不会转换为实际的删除路由。