从Ember.js中的选择框动态更改当前的ajax查找查询

时间:2013-11-24 23:31:02

标签: javascript ajax ember.js

我正在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;
    }
}

但是如何让模型重新加载?!

仍然关注这个事件驱动的东西,所以任何帮助非常感谢,请原谅我,如果我没有得到一些非常基本的东西..!

1 个答案:

答案 0 :(得分:1)

转换到路线并将ID /过滤器发送给它。

从您的组件中,您应该发送操作,更改,并提供必要的信息。从您的控制器/路由,他们应该有一个将处理已发送的操作的操作。然后,他们可以执行transitionToRoute / transitionTo并发送路由和id / filters以用于路由。

http://emberjs.jsbin.com/utuhAKo/1/edit