查询多条记录时问题与ember.js

时间:2017-07-29 18:19:30

标签: ember.js ember-data

使用store.findRecord()store.findAll()时我没有遇到任何问题,但是当我尝试使用store.query()时,它总会返回模型中的所有内容,而不是像我期待的那样。<\ n / p>

例如,我的人模型中有100条记录,当我在路线中使用ember.js网站上的示例时:

model: function() {
    this.get('store').query('person', {
      filter: {
        name: 'Peter'
      }
    }).then(function(peters) {
      return peters
    });
}

所有100条记录都会返回到我的模板,而不只是那些名称为“Peter&#39;”的记录。

3 个答案:

答案 0 :(得分:0)

您的模型钩子应该返回。

model() {
        return this.get('store').query('person', {
          filter: {
            name: 'Peter'
          }
        }).then(function(peters) {
          return peters
        });
    }

答案 1 :(得分:0)

我认为你正在寻找类似的东西

@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  constructor(private events: Events) {
    this.events.subscribe("userloggedin", (user) => this.currentUser = user);
  }
}

我认为你不能那样过滤(我可能错了)。当您将参数传递给JSON.parse(user)方法时,您将向他们发送服务器端,并依靠您的API来过滤和发回正确的数据。

如果你无法控制,你可以只过滤客户端的记录。但是,在服务器端过滤会很快。

答案 2 :(得分:0)

这与余烬无关。如果您调用store.querystore.queryRecord ember-data将查询发送到服务器并期望服务器执行所需的过滤逻辑。

您应该了解服务器和客户端过滤之间的区别。差异至关重要!