2016-12-05 2 views
0

Ich muss einen Ausdruck auswerten, den ich anhängen soll.So bewerten Sie den Ausdruck im Lenker

eAddressType kann M, E, PH oder FX

sein Was wird der beste Weg sein, den Ausdruck initData.alternateContactLabelM mit einer Kombination aus (alternateContactLabel + eAddressType) zu bewerten?

<ux-list-item primary_text="{{initData.alternateContactLabel + this.implEAddressType.eAddressType}}" 
           secondary_text="{{this.value}}" 
           cta="{text: '{{initData.uxButtonChangeLabel}}', onclick: 'alternateContactClick:{{index}},{{this.implEAddressType.eAddressType}}'}" 
           ariaLabel="{{initData.uxButtonChangeLabel}} {{initData.alternateContactLabelPH}}"> 
</ux-list-item> 

In JSON ich habe:

"initData": { 
    "alternateContactLabelM":"Alternative Mobile Number (SMS)", 
    "alternateContactLabelE":"Alternative Email Address", 
    "alternateContactLabelPH":"Alternative Contact Number", 
    "alternateContactLabelFX":"Alternative Fax", 
} 

Antwort

0

Sie benötigen eine Kombination aus einem benutzerdefinierten Helfer verwenden, um den Namen des Schlüssels zu erzeugen und die built-in lookup helper den Wert dieser Eigenschaft auszukommen das Objekt initData.

Lenker Helfer für Streich concatentation zweifellos vorher geschrieben worden sind, aber ich werde meine eigene einfache Implementierung schreiben hier:

Handlebars.registerHelper('concat', function() { 
    return Array.prototype.slice.call(arguments, 0, -1).join(''); 
}); 

Dieser Helfer alle Parameter an sie übergeben verkettet mit Ausnahme des letzten Parameter, die wir wissen, ist der Lenker options Objekt.

Wir können diesen Helper jetzt in unserer Vorlage verwenden, um den Schlüsselnamen dynamisch zurückzugeben. Wir werden dann den Nachschlag-Helfer, um den Wert von initData zu diesem Schlüssel zu finden:

primary_text="{{lookup initData (concat 'alternateContactLabel' implEAddressType.eAddressType)}}" 

Ein funktionstüchtiges Beispiel finden Sie unter this fiddle.