Ember数据提交不会创建PUT请求

时间:2013-08-04 15:43:42

标签: javascript ember.js ember-data ria

我正在使用一个简单的DS.Store

我以这种方式调用commit函数:

SA.CampaignController = Ember.ObjectController.extend({
    save: function() {
        this.get('store').commit();
    }
});

就像汤姆戴尔在Ember指南中的视频教程一样。以下是该教程的代码 - https://github.com/tildeio/bloggr-client/blob/master/js/app.js

但是,在视频中,我们可以看到在调用此操作时触发PUT请求。虽然我的代码中没有触发..任何指针?

我将RouteModelStore定义为:

SA.EditcampaignRoute = Ember.Route.extend({
    model: function() {
        return SA.Campaign.find();
    }
});

SA.Campaign = DS.Model.extend({
        name: DS.attr('string'),
        number: DS.attr('string')
    });

SA.Store = DS.Store.extend({
    adapter: DS.RESTAdapter.extend({
        url: "http://localhost/self_admin/json",
        buildURL: function(record, suffix) {
            var s = this._super(record, suffix);
            return s + ".json";
        }
    })
});

1 个答案:

答案 0 :(得分:0)

我看一下sourcebuildUrl期望root,suffix,record作为参数。

尝试更改此内容:

buildURL: function(record, suffix) {
  var s = this._super(record, suffix);
  return s + ".json";
}

要:

buildURL: function() {
  var s = this._super.apply(this, arguments);
  return s + ".json";
}

这是覆盖方法的更好方法,因为所有通知的参数都将传递给super方法。