1

私は、emberjs を使用したこのタスク クリエーターと、play フレームワークを使用して scala で作成された 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

JSONを取得してそこから削除するためにAPIにルートを追加しても、コミットは何も送信しません。

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 を primaryKey としてマップしましたか?

 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 に答える