Единственный способ, с помощью которого я могу думать о том, что вы хотите с декоратором ввода, который обеспечивает Angular, - это передать JS-объект (любой) во входной компонент и в зависимости от свойств выполнить требуемый код.,Пример:
my-component.component.ts
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
@Input() data: any;
constructor() { }
ngOnInit() { }
}
app.component.html
<my-component [data]="{data: 2, extraData: 3}"></my-component>
В этом случае вы можете добавить n * количество свойств во входные данные.Не существует никакой реализации для передачи неизвестного количества атрибутов в компонент.
Еще одна крутая вещь, которую вы также можете сделать, - внутри вашего компонента вы можете иметь некоторые значения по умолчанию, а также ожидать еще больше.Как пример здесь:
app.component.html
<my-component [data]="{name: 'John', surname: 'Doe'}"></my-component>
my-component.component.ts
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
@Input() data: any;
constructor() { }
ngOnInit() {
this.data = {
name: "John",
surname: "Doe",
origin: "UK",
...this.data
}
}
}
my-component.component.html
<div *ngIf="data.phone">
Phone Number: {{ data.phone }}
</div>
Или даже создайте Object.keys (this.data) и зациклите данныеСвойства и распечатать правильный HTML.Таким образом, вы можете иметь некоторые значения по умолчанию для известных свойств и даже ожидать еще несколько неизвестных свойств.
Надеюсь, я вам помог.