2014-10-15 3 views
2

Я создал простое приложение MVC с canjs для списка пользователей, используя can.Model.List. Поскольку мой запрос может занять более 5 секунд, я бы добавил в представление небольшое предварительное сообщение/изображение во время загрузки.Лучший способ показать сообщение загрузчика во время загрузки model.list

то я бы что-то вроде этого (я использую усы)

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> 

можно решить, имея новый наблюдаемую переменный, но я думаю, что есть лучший способ прямого управления этими отложенными данными внутри представления.

Любые идеи?

ответ

3

Вы можете использовать list promise plugin, чтобы показать индикатор загрузки в то время как Отложенный решается:

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> 
Смежные вопросы