无法使用ember-data删除记录

时间:2014-05-15 08:46:56

标签: ember.js ember-data

我无法使用RESTAdapter删除记录。

型号:

Blog.Post = DS.Model.extend({
title:DS.attr('string'),
body:DS.attr('string'),
date:DS.attr('date')
});

ApplicationAdapter:

Blog.ApplicationAdapter = DS.RESTAdapter.extend({
host:'http://localhost:8080',
namespace: 'api',
serializer: Blog.ApplicationSerializer
});

我有一个动作按钮:

<button {{action deletePost this target="controller"}}>Delete post</button>

和控制器:

Blog.PostController = Ember.ObjectController.extend({
    actions:{
        deletePost: function () {
            var post = this.get('model');
            post.deleteRecord();
            post.save();
        }
    }
});

在行动中,我得到了这个模型:

对象{日期:2014年5月15日星期四11:38:49 GMT + 0400(VOLT),
body:&#34; 131313313131311313133&#34;,
标题:&#34; 131313313131311313133&#34;,
__v:0,id:&#34; 53746f09c7cc34da0d000001&#34; ...}
__ember1400142799882_meta:Meta
__v:
0身体:( ...)
get body:function()
{set body:function(value)
{date:(...)获取日期:function()
{set date:function(value)
{id :( ...)获取id:function()
{set id:function(value)
{title:(...)得到标题:function()
{set title:function(value){
__proto__:对象

下一个例外: 未捕获的TypeError:undefined不是函数 当我调用post.deleteRecord()

时抛出此异常

1 个答案:

答案 0 :(得分:2)

可能的解决方案可能类似于this one。 您可以在Route对象中定义deletePost操作,然后按this.currentModel访问模型。

<强>模板:

<button {{action deletePost this}}>Delete post</button>

<强>路线:

Blog.PostRoute = Ember.Route.extend({

  actions:{
      deletePost: function () {
        var post = this.currentModel;
        post.deleteRecord();
        post.save();
      }
  }

});