编程语言
首页 > 编程语言> > javascript – 过滤分页将参数传递给异步的ember数据关系请求

javascript – 过滤分页将参数传递给异步的ember数据关系请求

作者:互联网

我想异步实现对ember数据的分页/过滤.

这是我的作者模型:

export default DS.Model.extend({
  user: DS.belongsTo('user'),
  articles: DS.hasMany('article', { async: true }),
  name: DS.attr('string'),
  email: DS.attr('string')
});

路线:

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('author', params.author_id);
  }
});

控制器:

export default Ember.ObjectController.extend({
  popularArticles: function() {
    return this.get('model.articles').filter({ tab: 'popular' });
  }.property('model.articles')
});

请注意,模型具有带有DS.hasMany(‘article’,{async:true})关系的articles属性.

如果我使用此属性,则此请求将成为authors / 1 / articles及其异步.

这是好的,直到我需要提出如authors / 1 / articles?page = 2或authors / 1 / articles?tab =“hot”的请求.

一种可能的方法是,如控制器中所示,我有一个popularArticles属性,它过滤了model.articles属性,并将在不加载所有文章的情况下生成过滤后的请求.

如何将查询参数传递给ember数据中的异步加载关系?

解决方法:

这个插件可能会有所帮助:https://github.com/mdehoog/ember-data-has-many-query.

允许您将查询参数添加到has-many关系中,例如:

post.query(‘comments’,{page:1});

标签:javascript,rest,ruby-on-rails,ember-js,ember-data
来源: https://codeday.me/bug/20190703/1362195.html