我正在Ember.js中构建一个数据报告应用程序,我有两个选择框(两个组件),它们为当前显示的数据选择日期范围(仅按月)。
如果更改了select
框,则服务器会被另一个请求命中,并且所有数据都会从给定时间段重新加载。但我无法弄清楚如何重新运行Route的model
方法 - 我猜有效地观察change
上的select
事件?
我尝试过这样的事情:
Dashboard.MonthlyReviewRoute = Ember.Route.extend({
query: {},
model: function( params ) {
console.log(params);
var args = { page: 'monthly_review' };
args = Ember.merge(args, {});
return this.store.find('report', args);
},
setupController: function(controller, model) {
controller.set('model', model);
controller.set('report', model.get('content')[0]);
}
});
然后
Dashboard.SelectComponent = Ember.Component.extend({
tagName: 'select',
change: function(e) {
Dashboard.MonthlyReviewRoute.query.value = 5;
}
}
但是如何让模型重新加载?!
仍然关注这个事件驱动的东西,所以任何帮助非常感谢,请原谅我,如果我没有得到一些非常基本的东西..!
答案 0 :(得分:1)
转换到路线并将ID /过滤器发送给它。
从您的组件中,您应该发送操作,更改,并提供必要的信息。从您的控制器/路由,他们应该有一个将处理已发送的操作的操作。然后,他们可以执行transitionToRoute / transitionTo并发送路由和id / filters以用于路由。