Лучший способ показать сообщение загрузчика во время загрузки model.list
Я создал простое приложение MVC с canjs для списка пользователей, используя can.Model.List. Поскольку мой запрос может занять более 5 секунд, я бы добавил в представление небольшое сообщение / изображение предварительной загрузки во время загрузки.
т.е. я бы что-то подобное (я использую усы)
var users = new Users.List({});
element.html(can.view('myView', users);
с этим шаблоном:
{{#if loading}}
<p>Loading, please wait...</p>
{{else}}
<ul>
{{#each this}}
<li>User {{ name }} {{ surname }}</li>
{{/each}}
</ul>
{{/if}}
</ul>
Я могу решить, имея новую наблюдаемую переменную, но я думаю, что есть лучший способ управлять этими отложенными данными внутри представления.
Есть идеи?
1 ответ
Решение
Вы можете использовать плагин списка обещаний, чтобы показать индикатор загрузки во время разрешения отложенного:
var users = new Users.List();
users.replace(Users.findAll());
element.html(can.view('myView', { users: users });
Это даже позволит вам показать сообщения об ошибках загрузки:
{{#if users.isPending}}
<p>Loading, please wait...</p>
{{else}}
{{#if users.isResolved}}
<ul>
{{#each users}}
<li>User {{ name }} {{ surname }}</li>
{{/each}}
</ul>
{{else}}
There was an error loading the user list.
{{/if}}
{{/if}}
</ul>