0

所以我试图通过 selectedUser 过滤我的交易。我没有为用户系统使用会话,而是使用更新 selectedAt 的菜单,并以这种方式获取最后选择的用户。现在我只想显示来自所选用户的交易。我尝试了多种变体,但它们似乎对我不起作用。

我的控制器看起来像这样

users: computed(function() {
    return this.get('store').peekAll('user');
  }),

  selectedUser: computed('users.length', function() {
    return this.get('users').sortBy('selectedAt').reverse().objectAt(0);
  }),

  transactions: computed(function() {
    return this.get('store').findAll('transaction');
  }),

我的交易模型:

export default Model.extend({
  category: DS.attr(),
  name: DS.attr(),
  description: DS.attr(),
  amount: DS.attr(),
  date: DS.attr(),
  typeOfT: DS.attr(),
  user: DS.belongsTo('user')
});

和我的用户模型:

export default Model.extend({
  fullName: DS.attr(),
  picture: DS.attr(),
  darkMode: DS.attr(),
  selectedAt: DS.attr('date'),

  transactions: DS.hasMany('transaction')
});

我可以通过像这样调用它们来成功调用模板中 currentUser 的每个事务

{{#each selectedUser.transactions as |transaction|}}
  {{transaction.name}}
{{/each}}
4

1 回答 1

0
users: computed(function() {
  return this.get('store').peekAll('user');
}),

selectedUser: computed('users.length', function() {
  return this.get('users').sortBy('selectedAt').reverse().objectAt(0);
}),

transactions: computed('selectedUser', function() {
  return this.get('selectedUser.transactions');
}),
于 2020-01-16T14:12:07.753 回答