Ember.js 如何异步加载与ember页面模型不同的其他资源
我有一个页面,其中有一个表列出了订单,所以我的Ember.js 如何异步加载与ember页面模型不同的其他资源,ember.js,ember-data,Ember.js,Ember Data,我有一个页面,其中有一个表列出了订单,所以我的OrdersIndexRoute model: function(){ return this.get('store').query('order', {...}); } 如果订单属于某个产品,我想添加一个select来过滤所选产品的订单 我可以通过调用this.get('store').query('product',{…})获得产品但不确定什么是正确的位置,我认为它在OrdersIndexController中,但这只是我的猜测,也许它
OrdersIndexRoute
model: function(){
return this.get('store').query('order', {...});
}
如果订单属于某个产品,我想添加一个select来过滤所选产品的订单
我可以通过调用this.get('store').query('product',{…})获得产品
但不确定什么是正确的位置,我认为它在OrdersIndexController
中,但这只是我的猜测,也许它可以放在route activate挂钩中,但不知道如何从controller访问它,也许这种情况有一种模式,但我还没有找到一个好的例子或指南,以及如何做到这一点,避免每次重新加载模型时召回产品
感谢您的帮助。您可以在钩子模型中使用Ember.RSVP.hash,以便在显示路由之前加载多个异步资源:
model() {
return Ember.RSVP.hash({
orders: this.get('store').query('order', {...}),
products: this.get('store').query('product', {...})
});
}
以后,您将不直接调用this.get('model'),而调用this.get('model.orders')或this.get('model.products')问题是,由于sort_by=field之类的查询参数更改,每次重新加载模型时,它都会发出产品请求,我以前确实是这样做的,但每次我更改sort_by query参数时,模型函数都会请求订单以及不需要的产品