Pass variable de composant personnalisé
J'ai mon composant personnalisé:
@Component({
selector: 'my-custom-component',
templateUrl: './my-custom-component.html',
styleUrls: ['./my-custom-component.css']
})
export class MyCustomComponent {
constructor() {
console.log('myCustomComponent');
}
}
Je peux l'utiliser comme ceci:
<my-custom-component></my-custom-component>
Mais comment je peux passer une variable? Par exemple:
<my-custom-component custom-title="My Title"></my-custom-component>
Et l'utiliser dans mon code composant?
L'aide d'une entrée dans votre composant: angulaire.io/docs/ts/latest/guide/...
OriginalL'auteur rpayanm | 2017-02-17
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter
Input
propriété à votre composant, puis utilisation de la propriété de liaison pour passer de la valeur:Et dans votre modèle:
Pour plus d'infos, découvrez cette page.
customTitle
variable n'est pas définie dansconstructor()
?C'est
undefined
parce queInput
est Angulaire du décorateur et dit "vie" à travers Angulaire du cycle de vie, c'est pourquoi il est uniquement disponible enOnInit
et après (constructor
n'a rien à voir avec Angulaires, il est initialisé avantOnInit
). Vous pouvez lire plus sur Angulaire du cycle de vie des crochets ici: angular.io/docs/ts/latest/guide/lifecycle-hooks.htmlmais comment pouvez accéder à la chaîne "myAnotherVariable" ? <ma-custom-composant [customTitle]="yourVariable">myAnotherVariable</mon-custom-component>
pourquoi potentiellement customTitle pourrait être "undefined"? parce que je reçois ce
OriginalL'auteur Stefan Svrkota
Vous pouvez ajouter un
@Input()
décorateur à une propriété sur votre composant.ou de liaison de titre à partir d'une variable 'theTitle'
Voir le
@Input()
décorateur de la documentation.@Input
élément peut avoir besoin d'être déclaréepublic
pour qu'il fonctionne correctement.OriginalL'auteur Garth Mason