Ember.js 在willTransition钩子中调用route.refresh()是否正常?
这个问题与EmberJS最佳实践有关。我有两条路线:Ember.js 在willTransition钩子中调用route.refresh()是否正常?,ember.js,Ember.js,这个问题与EmberJS最佳实践有关。我有两条路线: /食客 /食客/登记 现在,我想在从/diners/register转换后重新加载/diners的模型(由于使用transitionToRoute成功地注册了食客) 问题是: 我在操作中使用this.refresh():willtransion;这正常吗? 我应该这样做吗 还有哪些方法可以刷新的模型 从子管线过渡后的父管线 我怎么能 发布新邮件时,保持客户端数据的一致性 记录到后端 余烬版本信息: DEBUG: Ember :
- 我在操作中使用
:willtransion;这正常吗? 我应该这样做吗this.refresh()
- 还有哪些方法可以刷新的模型 从子管线过渡后的父管线
- 我怎么能 发布新邮件时,保持客户端数据的一致性 记录到后端
DEBUG: Ember : 1.13.11
DEBUG: Ember Data : 1.13.15
DEBUG: jQuery : 1.11.3
用代码更新
就餐登记控制器:
export default Ember.Controller.extend({
actions: {
save () {
var data = this.model;
var record = this.store.createRecord('diner', data);
record.save().then(onFulfill, onFail);
var self = this;
function onFulfill () {
Ember.$('.ui.modal').modal('destroy');
self.transitionToRoute('diners');
}
function onFail (e) {
console.error(e.message || 'Unknown error');
}
},
cancel () {
Ember.$('.ui.modal').modal('close');
this.transitionTo('diners');
}
}
});
export default Ember.Route.extend({
queryParams: {
page: {
refreshModel: true
}
},
setupController (controller, model) {
let pageSize = 10;
let page = this.paramsFor('diners').page;
let total = model.meta.total;
controller.set('model', model);
if (page > 1) {
controller.set('prevPage', page - 1);
}
else {
controller.set('prevPage', undefined);
}
if (total > pageSize * page) {
controller.set('nextPage', page + 1);
}
else {
controller.set('nextPage', undefined);
}
},
model (params) {
let page = params.page || 1;
return this.store.find('diner', {
page
});
},
actions: {
willTransition () {
this.refresh();
}
}
});
就餐者名单路线:
export default Ember.Controller.extend({
actions: {
save () {
var data = this.model;
var record = this.store.createRecord('diner', data);
record.save().then(onFulfill, onFail);
var self = this;
function onFulfill () {
Ember.$('.ui.modal').modal('destroy');
self.transitionToRoute('diners');
}
function onFail (e) {
console.error(e.message || 'Unknown error');
}
},
cancel () {
Ember.$('.ui.modal').modal('close');
this.transitionTo('diners');
}
}
});
export default Ember.Route.extend({
queryParams: {
page: {
refreshModel: true
}
},
setupController (controller, model) {
let pageSize = 10;
let page = this.paramsFor('diners').page;
let total = model.meta.total;
controller.set('model', model);
if (page > 1) {
controller.set('prevPage', page - 1);
}
else {
controller.set('prevPage', undefined);
}
if (total > pageSize * page) {
controller.set('nextPage', page + 1);
}
else {
controller.set('nextPage', undefined);
}
},
model (params) {
let page = params.page || 1;
return this.store.find('diner', {
page
});
},
actions: {
willTransition () {
this.refresh();
}
}
});
您能否将注册码添加到问题中,特别是保存和转换的部分。@Kitler谢谢!我已经按照你的要求更新了问题。请注意最后5行
操作:…
能否将注册码添加到问题中,特别是保存和转换的部分。@Kitler谢谢!我已经按照你的要求更新了问题。注意最后5行操作:…