У меня есть несколько отдельных веб-компонентов, выполненных с угловыми элементами, которые я импортирую в основной, который имеет маршрутизатор и является базовым приложением.Маршруты довольно просты:
import { Component } from '@angular/core';
import { Router } from "@angular/router";
@Component({
selector: 'example',
template: '<component-one [variable]="toPass" (callback)="onCallback($event)"></component-one>',
styles: []
})
export class ExampleComponent {
public toPass: string = "Hello World!";
constructor(private router: Router) {}
onCallback(event) {
console.log(event);
this.router.navigate(['example-two']);
}
}
И компоненты делают то, что они должны делать.
import { Component, Input, OnInit } from '@angular/core';
@Component({
selector: "component-one",
templateUrl: "./component-one.html",
styleUrls: ["./component-one.scss"],
encapsulation: ViewEncapsulation.Emulated,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ComponentOne implements OnInit {
@Input() variable: string;
@Output() callback = new EventEmitter<any>();
constructor() {}
ngOnInit() {
console.log("Variable: ", this.variable);
}
someRandomButtonClicked() {
callback.emit({ data: "Callback Called" });
}
}
Теперь, когда я запускаю основное приложение, все показывает, как ожидалось, обратный вызовработает нормально, но переменная не определена.Я что-то упустил в объявлении @Input в моих веб-компонентах?