Проблема с анимацией Angular 5

Я новичок в угловой анимации и в настоящее время следую части руководства по Angular «Вход и выход».

Сейчас у меня есть что-то подобное

<section
  class = "row justify-content-center mb-2 mb-md-4"
  *ngFor = "let site of sites"
  [@flyInOut] = "site.state"
>

...repeatable content

</section>

и в компоненте

import { Component, OnInit } from '@angular/core';
import { SiteService } from '../../Services/site.service';
import { Site } from './site';
import {
  trigger,
  state,
  style,
  animate,
  transition
} from '@angular/animations';

declare const $;

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss'],
  providers: [SiteService ],
  animations: [
    trigger('flyInOut', [
      state('in', style({transform: 'translateX(0)'})),
      transition('void => *', [
        style({transform: 'translateX(-100%)'}),
        animate(100)
      ]),
      transition('* => void', [
        animate(100, style({transform: 'translateX(100%)'}))
      ])
    ])
  ]
})
export class HomeComponent implements OnInit {
  sites: Site[] = [];

  constructor(
    siteService: SiteService,
    public name: string,
    public state: string = 'in'
  ) {
    this.sites = siteService.getSites();
  }

  ngOnInit(): void {
    $(function () {
      $('[data-toggle = "tooltip"]').tooltip();
    });
  }

}

Модуль анимации импортируется в основной модуль.

При загрузке сайта выдает ошибку Проблема с анимацией Angular 5

У вас есть параметр типа String в конструкторе вашего HomeComponent?

Amit Beckenstein 01.04.2018 14:15

Код показан. Это код домашнего компонента. Есть два параметра, которые являются строками - состояние и имя.

Sergey 01.04.2018 14:16

Ой, извините, я не увидел полосу прокрутки. Напишу ответ сразу.

Amit Beckenstein 01.04.2018 14:19
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
3
301
1

Ответы 1

Проблема в том, что у вас есть string в вашем конструкторе, и, как вы знаете, параметры в конструкторе компонентов Angular вводятся или предоставляются, что называется внедрением зависимостей. В настоящее время кажется, что у вас нет поставщика строки в вашем конструкторе. У вас есть 2 способа сделать это:

  1. Вам необходимо указать значение для строки, используя декоратор @Inject() для параметра конструктора, например:

    constructor(siteService: SiteService, @Inject(HOME_COMPONENT_NAME) name, ...)
    

    Где HOME_COMPONENT_NAME - это InjectionToken.

  2. Укажите значение для строки, используя provide(string, {useValue: ...}) в вашем декораторе @Component(), например:

    @Component({
        providers: [SiteService, provide(string, {useValue: 'your_string_here'})]
    })
    export class HomeComponent {
    

    Где 'your_string_here' - значение вашей строки.

Я предлагаю вам узнать больше о Внедрение зависимостей в Angular и обратиться к этому проблема.

Хотел бы я знать, что вы имеете в виду. Я следую руководству в точности так, как оно написано.

Sergey 01.04.2018 16:45

Ваша проблема решена или у вас все еще есть проблемы?

Amit Beckenstein 04.04.2018 13:18

Другие вопросы по теме