我对此有详细的观察。不知道我在这里做错了什么。我有一个模型定义,我计算一个布尔值。导致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()
使用POST
而不是DELETE
发出ajax请求。请求网址也是错误的。它会发送到/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
}
});
答案 0 :(得分:2)
您不能将isNew
用于属性名称,因为ember-data已经将其用于其自身目的。尝试将属性更改为isRecent
或类似的内容。