Довольно просто добавить новые методы в модель - просто укажите новые методы в .extend()
.Вы должны написать часть этого самостоятельно, но вы можете воспользоваться существующим оборудованием, таким как Backbone.sync
(в основном это просто оболочка вокруг $.ajax()
) и существующим свойством url
Модели:
var MyModel = Backbone.Model.extend({
activate: function(opts) {
var model = this,
url = model.url() + '/activate',
// note that these are just $.ajax() options
options = {
url: url,
type: 'POST' // see my note below
};
// add any additional options, e.g. a "success" callback or data
_.extend(options, opts);
return (this.sync || Backbone.sync).call(this, null, this, options);
},
// etc
});
Простов качестве комментария, с точки зрения REST, ваши операции changePassword
и activate
должны не быть методами GET - все методы GET должны быть идемпотентными.Это не просто RESTifarianism, это хорошая идея - вы можете в конечном итоге кэшировать эти URL-адреса (чтобы ничего не произошло) или случайно нажать их несколько раз (обычно требуется подтверждение пользователя с помощью запроса POST).Сделайте эти POST-звонки, если можете.