2016-03-27 7 views
2

Wie elvis Operator verwenden, wenn hyphenated Eigenschaften in angular2 Vorlagen Zugriff aufElvis-Operator mit Bindestrichen Eigenschaften in angular2

http://plnkr.co/edit/z3Wqn7EScgxcAhrFJWjv?p=preview

//our root app component 
import {Component} from 'angular2/core' 

@Component({ 
    selector: 'my-app', 
    providers: [], 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
    {{asyncObj1?.theprop}} 
    {{asyncObj2?['the-prop']}} <!-- this throws error --> 
    </div> 
    `, 
    directives: [] 
}) 
export class App { 
    constructor() { 

    setTimeout(function(){ 
     this.asyncObj1 = { 
     'theprop': 'value' 
    } 
     this.asyncObj2 = { 
     'the-prop': 'async value' 
    } 
    }, 2000) 

    } 
} 
+0

Sie würden eine ngIf benötigen. Etwas wie '

{{asyncObj2['the-prop']}}
' –

+1

oder '', das würde kein zusätzliches Markup ie- 'div wrapper' hinterlassen. –

Antwort

1

Es würde Sie zur Zeit nicht scheinen können, weil es nicht erscheint wurden mit Unterstützung für Indexer Notation hinzugefügt.

Dies wurde zu Angular 2 in this Pull-Anforderung hinzugefügt, seit Ausgabe #16 in Typoskript ist "blockiert" oder in der Warteschleife, bis es eine standardisierte ES-Unterstützung für einen solchen Operator gibt.

Im Wesentlichen ist es möglich, dass der Operator innerhalb von Angular2 erweitert werden kann, um beides zu unterstützen. Eigenschaftensyntax UND Indexersyntax, aber die Pull-Anfrage scheint keinen Hinweis darauf zu geben, dass dies beabsichtigt war und dass sie derzeit unterstützt wird, insbesondere wenn Sie sich die zugehörigen Tests ansehen.

Verwandte Themen