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

Changing current ajax lookup query dynamically from select box in Ember.js

本文关键字:ajax 查询 查找 动态 js Ember 选择      更新时间:2023-09-28

我正在Ember.js中构建一个数据报告应用程序,我有两个选择框(两个组件),它们为当前显示的数据选择日期范围(仅按月份)。

应该发生的情况是,当任一select框更改时,服务器会收到另一个请求,并且所有数据都会从给定的时间段重新加载。但我不知道如何让Route的model方法重新运行——我想有效地观察select上的change事件?

我试过做这样的事情:

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;
    }
}

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

我仍然在思考这个由事件驱动的东西,所以非常感谢任何帮助,如果我没有得到真正基本的东西,请原谅。。!

转换到路由并向其发送id/筛选器。

从您的组件中,您应该发送一个包含必要信息的操作change。从您的控制器/路由,他们应该有一个操作来处理发送的操作。然后,他们可以执行transitionToRoute/transitionTo,并发送路由和用于路由的id/筛选器。

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