Ember.js 如何从没有余烬数据的列表中删除项目?
我试图从通过Ember.js 如何从没有余烬数据的列表中删除项目?,ember.js,Ember.js,我试图从通过jQuery.getJSON获取的列表中删除一项余烬数据不是一个真正的选项,只要它还不稳定 App.Project = Ember.Object.extend({ remove: function() { return $.ajax({ url: '/api/v1/projects/'+this.get('id'), type: 'DELETE' }); } }); App.Projec
jQuery.getJSON
获取的列表中删除一项<代码>余烬数据不是一个真正的选项,只要它还不稳定
App.Project = Ember.Object.extend({
remove: function() {
return $.ajax({
url: '/api/v1/projects/'+this.get('id'),
type: 'DELETE'
});
}
});
App.Project.reopenClass({
findAll: function() {
return jQuery.getJSON('/api/v1/projects').then(
function(response) {
var projects = Ember.A();
if (response.projects !== undefined) {
response.projects.forEach(function (project) {
projects.pushObject(App.Project.create(project));
});
}
return projects;
}
);
}
});
App.ProjectsRoute = Ember.Route.extend({
model: function() {
return App.Project.findAll();
},
events: {
deleteProject: function(project) {
project.remove();
}
}
});
当我按下下面的按钮时,它会执行deleteapi调用,但它当然不会从数组中删除该项。如何从阵列中删除该项
<button class="btn btn-mini btn-danger" {{action 'deleteProject' this}}><i class="icon-trash"></i> Delete</button>
删除
我想您正在寻找removeObject
您需要获取对项目控制器内容的内容的引用,然后将单个项目传递给removeObject方法
projects.removeObject(project);
下面是一个完整的“无余烬数据”查找/添加/删除示例
App.Person = Ember.Object.extend({
id: null,
username: ''
});
App.Person.reopenClass({
people: [],
add: function(hash) {
var person = App.Person.create(hash);
this.people.pushObject(person);
$.ajax({
type: "POST",
url: "/people/",
data: hash,
error: function() {
alert("create failed");
},
success: function(response) {
person.set('id', response.id);
}
});
},
remove: function(person) {
this.people.removeObject(person);
$.ajax({
type: "DELETE",
url: "/people/" + person.id + "/",
error: function() {
alert("delete failed");
}
});
},
find: function() {
var self = this;
$.getJSON('/people/', function(response) {
response.forEach(function(hash) {
var person = App.Person.create(hash);
Ember.run(self.people, self.people.pushObject, person);
});
}, this);
return this.people;
}
});
这看起来确实是我所需要的,但是我如何才能得到一套项目呢?我尝试了
this.get('model').removeObject(project)
,但该模型没有该方法。另外,this.get('content')
未定义。似乎我需要一个Ember.Set,但当我将findAll方法转换为使用Ember.Set时,我得到了一个Object[Object Object]没有方法“addArrayObserver”
异常。该链接现在已失效