У меня есть следующий компонент, который просто получит набор данных навыков, содержащих заголовок и процент от моей базы данных.Угловая анимация 2 с данными асинхронизации
Моя цель состоит в том, чтобы значение начальной ширины для каждого div было 0%, и как только HTTP-запрос вернется и верная информация будет восстановлена, установите правильный процент для каждого навыка с анимацией, которая идет слева направо (div будут иметь фоновый цвет, поэтому вы должны увидеть его ширину, например: 0% ---> 95%).
Мне интересно, какой был бы наилучший подход для достижения этой цели в правильной обработке углов 2. Я знаю, что есть свойство анимации, которое вы можете использовать на декораторе компонентов, но я не уверен, как заставить его работать с результатами async.
Самое главное в этом вопросе - как обрабатывать данные который входит через асинхронный канал таким образом, что я могу показать анимацию для процентного бампа. Форма 0, что бы это ни было. Как сейчас, я сразу вижу конечный результат, однако анимация никогда не выполняется (и анимация - это то, что я на самом деле ищу, а не только вывод окончательного результата бара).
Я уверен, что есть несколько разных способов заставить это работать, просто смущенный относительно того, что было бы лучшим.
Вот мой компонент:
import { Component, OnInit } from '@angular/core'
import { SkillsService } from './skills.service'
@Component({
selector: 'skills',
template: `
<section class="skills">
<div *ngFor="let skill of skillsService.skills$ | async">
<div class="skills__bar" [style.width]="skill.percentage + '%'">
<h3 class="skills__title">{{skill.title}}</h3>
</div>
</div>
</section>
`,
})
export class SkillsComponent implements OnInit {
constructor(private skillsService: SkillsService) {}
ngOnInit() {
this.skillsService.fetchSkills()
}
}
Заранее спасибо, все!
Эй, Рики! Большое спасибо за то, что нашли время ответить. Хотя это действительно рациональный способ решения процентного бара с помощью CSS, и я мог бы использовать этот подход для самого стиля, он не решает самую насущную проблему, которая должна обрабатывать данные асинхронного ввода. Асинхронная трубка обрабатывает ответ (который очень маленький и, следовательно, быстрый) таким образом, что я сразу вижу зеленую часть без анимации. Так что я в значительной степени в том же месте, видя желаемый конечный результат, просто не анимацию, чтобы попасть туда ... – deathandtaxes