У меня есть подробное наблюдение по этому поводу. Не уверен, что я делаю неправильно здесь. У меня есть определение модели, в котором я вычисляю логическое значение. Что приводит к тому, что метод deleteRecord()
отправляет данные с неправильным методом запроса (POST
вместо DELETE
). Также, когда я вызываю метод save()
, он отправляет запрос через PUT
вместо POST
Обратите внимание: код работает нормально, когда я удаляю определение вычисляемого свойства.
Определение модели
var attr = DS.attr(),
string = DS.attr('string'),
boolean = DS.attr('boolean'),
number = DS.attr('number'),
hasMany = DS.hasMany();
App.Status = DS.Model.extend({
sticky: boolean,
title: string,
date: string,
categories: attr,
content: string,
comment_allowed: boolean,
replying: DS.attr('boolean', {defaultValue: false}),
isNew: function(){
var unix = parseInt( moment(this.get('date')).format('X') );
var current = parseInt(moment().format('X'));
var four_hours = 60 * 60 * 4;
return ( (unix + four_hours) > current);
}.property('date')
});
Удаление элемента из контроллера
Когда я пытаюсь удалить запись из формы, обработчик действий destroyRecord()
делает запрос ajax с POST
вместо DELETE
. Также URL-адрес запроса неверен. Он получает сообщения на /statuses
вместо /status/id
App.IndexController = Ember.ArrayController.extend({
actions: {
deleteStatus: function(status_id){
if(!confirm('Are you sure you want to delete this status?'))
return;
this.store.find('status', status_id).then(function(status){
console.log(status);
status.destroyRecord();
});
}
}
});
Также обратите внимание, что функция вычисляемого свойства работает, как и ожидалось, без каких-либо ошибок.
Редактировать
Найдите код для RESTAdapter
ниже. Опять же, если я закомментирую часть Computed Property, код будет работать нормально.
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: config.siteUrl,
namespace: 'wp-json',
headers: {
"X-WP-Nonce": config.nonce
}
});
isNew
зарезервировано!! Спасибо! 19.12.2014