- когда задача параллельного выполнения ember называется средством получения компонентов glimmer, она выполняется в бесконечном цикле.
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { task } from 'ember-concurrency';
export default class UserTableComponent extends Component {
@service store;
@tracked users;
get taskStatus() {
let params = {
'account_id':this.args.account,
'page':this.args.page
}
this.getUsersTask.perform(params);
}
@task(function*(params) {
let recordsWithMeta = yield this.store.query('user', params);
this.users= recordsWithMeta.toArray();
}) getUsersTask;
}
user-table.hbs
<table>
<thead>
<tr>
<th>
<div class="first">Name</div>
</th>
</tr>
</thead>
<tbody>
{{#if this.taskStatus.isRunning}}
<tr>
<td >
<div class="h-64">
{{ui-kit/loader}}
</div>
</td>
</tr>
{{else}}
{{#each @users as |user|}}
{{/each}}
{{/if}}
</tbody>
</table>
Вышеупомянутый компонент вызывается где-тов шаблоне и при передаче аккаунта и динамической страницы.
<UserTable
@account={{this.account}}
@page={{this.page}}
>
</UserTable>
Примечание: он работает в бесконечном цикле.