angular - Angular2-direktiv - strängproblem
Vi skapade en direktiv i Angular2 och har en input-egenskap som ska ta emot en string. Problemet är att vi inte kan skicka en sträng.
Om vi försöker göra detta:
<learning-requirements [title]="You should be able to!" [content]="requirements"></learning-requirements>
Det fungerar inte, så vi måste göra så här, och sedan fungerar det:
<learning-requirements [title]="'You should be able to!'" [content]="requirements"></learning-requirements>
Det är vår direktiv:
@Component({
selector: "learning-requirements",
directives: [IONIC_DIRECTIVES],
templateUrl: "build/pages/learning/components/requirements/requirements.html"
})
export class RequirementsComponent {
@Input() public title: string;
@Input("content") public items: Array<Requirement>;
}
Någon idé om hur man hanterar sträng utan att uttryckligen använda enkelcitat?
Svar #1
I princip, när du har ett attribut omslutet med [] hakparenteser kommer attributvärdet (uttrycket) att utvärderas med komponentens kontext (this).
Eftersom du skickar ett värde direkt kan du direkt ange title-attributet utan []-hakparenteser, vilket betyder att värdet du har skickat in i attributet inte kommer att utvärderas mot komponentens kontext (this).
Markup
<learning-requirements
title="You should be able to!"
[content]="requirements">
</learning-requirements>
Svar #2
Deklarera en sträng(Type)-variabel och använd den som visas nedan,
<learning-requirements [title]="someVar" [content]="requirements"></learning-requirements>
export class AppComponent{
someVar:string="You should be able to!";
}
