Передать данные в веб-компонент Angular

Я пытаюсь писать веб-компоненты в Angular и не могу понять, как передавать данные в компонент.

<my-component someId = "1234"></my-component>

Я надеялся найти способ реализовать это и получить someId в моем угловом компоненте. Возможно ли реализовать это или я должен пытаться использовать слоты? Просто чтобы быть ясным, я спрашиваю, как сделать веб-компоненты, используя угловые, а не обычные угловые компоненты.

Тестирование функциональных 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
2
0
1 528
3

Ответы 3

Вы должны использовать привязка данных Angular

<my-component [id] = "1234"></my-component>

И в вашем дочернем компоненте используйте @Input декораторы

export class MyComponent {
  @Input('id') id: string;
}

Вам нужно использовать переменную @Input(), объявленную в вашем общем компоненте.

export class MyComponent {
 @Input() someId: string = '1234';//default value
}

//HTML

<my-component someId = "1234"></my-component>

«someId» — необязательный входной параметр, который также можно игнорировать.

Обновлено: в случае, когда вы привязываете некоторую постоянную строку или число к вводу, его не нужно указывать в квадратных скобках. Вы можете использовать тот же синтаксис, что и обычный атрибут html.

У меня была эта проблема около двух дней, и, наконец, я нашел решение.

Что вам нужно сделать, так это использовать метод нгончанжес() в вашем дочернем компоненте (веб-компонент, который вы хотите выставить). Так как это для обнаружения любых изменений ваших полей @Вход().

Здесь я оставляю фрагмент кода моего веб-компонент:

@Component({
  selector: 'app-shipment-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit, OnChanges {

  @Input() domain;

  @Output() response = new EventEmitter<string>();

  constructor() {
  }

  ngOnInit(): void {
  }

  ngOnChanges(changes: SimpleChanges): void {
    if (changes.domain) {
      console.info("Domain URL: ", this.domain);  
      this.response.emit(this.domain);
    }
  }

}

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