typescript - Angular2: JsonObject som @Input-verdi
Angular2: 2.0.0-beta8
Jeg vil gjerne tilpasse en direktiv. For å oppnå det opprettet jeg et objekt som inneholder alle mine egendefinerte parametere, og jeg håpet å sende det til malen min på denne måten:
Min direktiv brukt i en mal:
<div my-directive="{param1: 46, param2: 48}"></div>
Inndata i min direktiv:
@Input('my-directive')
public conf: Configuration;
Param Objektdefinisjon:
export interface Configuration{param1;param2; ...}
Dessverre fungerer det ikke. Kanskje på grunn av en Json-parsing?
- Hvordan få det til å fungere?
- Bør jeg måtte lage dette "Param Object" på komponenten min, og sende det til malen ved å bruke en variabel?
- Finnes det noen beste praksis?
Svar #1
Hvis du vil tilordne et objekt, bruk syntaksen [propName]="value"
[my-directive]="{param1: 46, param2: 48}"
Dette er standard attributtbinding der Angular ikke er involvert.
<div my-directive="{param1: 46, param2: 48}"></div>
Attributter kan kun inneholde strenger. @Input() leser verdien fra attributtet etter at det ble gjort om til en streng.
Tips: For input-, output- og direktivenavn er myDirective foretrukket fremfor my-directive. Bare elementnavn bruker my-element for kompatibilitet med tilpassede elementer.
