Не удается отфильтровать мои транзакции по текущему пользователю - Ember JS - PullRequest
0 голосов
/ 16 января 2020

Поэтому я пытаюсь отфильтровать свои транзакции по выбранному пользователю. Я не использую сеансы для пользовательской системы, вместо этого я использую меню, которое обновляет 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')
});

и моя модель 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}}

1 Ответ

0 голосов
/ 16 января 2020
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');
}),
...