В моем приложении я хочу показать индикацию загрузки во время загрузки. Я осуществил это успешно:Как я могу охарактеризовать классы CSS с помощью ngAnimate?
lyr.ui.directive('loading', ['$timeout', function($timeout) {
return function(scope, element, attr) {
element.addClass('content-loading');
var unbind = scope.$watch(attr.loading, function(value) {
if (value) {
element.removeClass('content-loading');
element.addClass('content-loaded');
$timeout(function() {
element.removeClass('content-loaded');
}, 250);
unbind();
}
});
};
}]);
Plunker: http://plnkr.co/edit/L6opqA?p=preview
Однако, я думаю, что я дублируя много ngAnimate кода добавления и удаления классов, и в закодировав удаление content-loaded
с использованием жестко запрограммированный тайм-аут.
Можно ли использовать мой пример для использования ngAnimate с меньшим количеством duplicated code?
Это сложно понять из-за того, что документация по ngAnimate не фокусируется на JS-запускаемых анимациях.
Небольшое примечание, которое не отображается в плункере: я должен отображать дочерние элементы во время загрузки, потому что этот элемент содержит плагин jQuery, который вызывает $.width
, который возвращает 0 для элементов, которые не отображаются.