我有一个项目列表和删除每个项目的能力,这是我执行此操作的动作处理程序:
deleteProject: function(params) {
this.store.findRecord('project', params).then(function(project) {
project.deleteRecord();
project.save();
// this.transitionTo('projects');
});
}
我想要做的是重定向回显示项目列表的路线。正如您所看到的,我尝试使用this.transitionTo('projects')
执行此操作,但它不起作用,因为this
不再指向处理程序内的路由。
如何引用此route
引用此处理程序以转换到另一个路由?
我正在使用Ember v.1.13
答案 0 :(得分:1)
最简单的方法是关闭:
deleteProject: function(params) {
var self = this;
this.store.findRecord('project', params).then(function(project) {
project.deleteRecord();
project.save();
self.transitionTo('projects');
});
}
如果您使用带有转发器的ember-cli,也可以使用arrow function:
deleteProject: function(params) {
this.store.findRecord('project', params).then((project) => {
project.deleteRecord();
project.save();
this.transitionTo('projects');
});
}
答案 1 :(得分:0)
尝试以下代码。希望它有效。
deleteProject: function(params) {
var deleteFlag = false;
this.store.findRecord('project', params).then(function(project) {
project.deleteRecord();
project.save();
deleteFlag = true;
});
if (deleteFlag) {
this.transitionTo('projects');
} else {
....
}
}