2016-09-13 5 views
2

Wir haben eine Richtlinie in Angular2 und haben eine input Eigenschaft, die eine string erhalten soll. Das Problem ist, dass wir keine Zeichenfolge übergeben können.Angular2 Richtlinie - String Ausgabe

Wenn wir versuchen, dies zu tun:

<learning-requirements [title]="You should be able to!" [content]="requirements"></learning-requirements> 

Es funktioniert nicht, so haben wir dies zu tun, und dann funktioniert es:

<learning-requirements [title]="'You should be able to!'" [content]="requirements"></learning-requirements> 

, daß unsere Richtlinie ist:

@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>; 
} 

Haben Sie eine Idee, wie Sie mit einem String umgehen können, ohne explizit ein Zitat zu verwenden?

Antwort

2

Grundsätzlich, wenn Sie Attribut mit [] eckige Klammer wickeln haben es mit Kontext ausgewertet Attributwert (Ausdruck) wird (this) von Komponente.

Da Sie direkt einen Wert vorbei direkt title Attribut ohne [] eckige Klammer angeben könnte, was bedeutet, dass der Wert, den Sie innerhalb von Attribut bestanden haben würde nicht gegen Kontext ausgewertet bekommen (this) der Komponente.

Markup

<learning-requirements 
    title="You should be able to!" 
    [content]="requirements"> 
</learning-requirements> 
+1

Das ist es, auch danke für die Erklärung! – DAG

+0

@dag Froh zu hören, dass es geholfen hat, Danke und Prost, könntest du dasselbe finden [antwort hier] (http://stackoverflow.com/a/39393526/2435473) –

2

Declare string (Typ) Variable und es verwenden, wie unten gezeigt,

<learning-requirements [title]="someVar" [content]="requirements"></learning-requirements> 


export class AppComponent{ 
    someVar:string="You should be able to!"; 
} 
+0

Ok, ich weiß das, aber ist es eine Möglichkeit, die Richtlinie zu sagen, dass es ein String ist einfache Anführungszeichen zu vermeiden? – DAG

+0

Ich verstehe nicht, was Sie sagen wollen. Was ist dein Sinn nach dieser Antwort? – micronyks

+0

Wenn Sie keine Variable verwenden möchten, müssen Sie sie mit einem Anführungszeichen übergeben. – micronyks