0

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

我这样调用commit函数:

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

就像 Tom Dale 在 Ember 指南中的视频教程一样。这是该教程的代码 - https://github.com/tildeio/bloggr-client/blob/master/js/app.js

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

我有我的Route,ModelStore定义为:

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";
        }
    })
});
4

1 回答 1

0

我看一下源代码,并buildUrl期望根、后缀、记录作为参数。

尝试改变这个:

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";
}

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

于 2013-08-05T11:54:30.443 回答