[Angular] Hoe kan ik een property van een subobject accessen

Pagina: 1
Acties:

Vraag


  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 30-09 12:22
Ik denk een eenvoudige vraag, maar ik weet de goede zoektermen niet;
Neem de volgende code:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
class Setting{
  public name: string;
  public value: number; 
}

class Product{
  public name: string;
  public setting: Setting
}

product: Product;


HTML:
1
2
3
4
5
<div>
{{product["name"]}} //werkt
{{product.setting.value}} //werkt
{{product["setting.value"]}} //werkt niet
</div>


Hoe heet de manier van het accessen van de properties met blokhaken?
Hoe kan ik de property van het subobject op laatste manier bereiken?

Mess with the best, die like the rest

Beste antwoord (via ThaStealth op 12-09-2019 16:32)


  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 12:58
Ik zou daar dan een hulp methode voor maken die dan de waarde ophaalt.
Je geeft dan de waardes en de gewenste property mee en in die methode haal je dan de gewenste waarde op.

Of je breidt die column field uit met een extractor die dat per column doet.

let the past be the past.

Alle reacties


  • Klaasvaak
  • Registratie: Maart 2010
  • Laatst online: 13:10
De engelse termen zijn dot- en bracket notation.
code:
1
2
3
product["setting"].value
product.setting["value"]
product["setting"]["value"]

  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 30-09 12:22
Klaasvaak schreef op donderdag 12 september 2019 @ 10:33:
De engelse termen zijn dot- en bracket notation.
code:
1
2
3
product["setting"].value
product.setting["value"]
product["setting"]["value"]
Er is geen manier om het binnen 1 blokhaak te doen?

Mess with the best, die like the rest


  • Klaasvaak
  • Registratie: Maart 2010
  • Laatst online: 13:10
Nee, per blokhaak kan je 1 object / property dieper.

  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 30-09 12:22
Okay, misschien moet ik mijn probleem wat verduidelijken, had gehoopt dat ik op een of andere manier toch dieper met in de properties kon komen.

Het is bedoeld dat dit de basis vormt voor een tabelweergave, dus 1 array bevat elementen die de kolomnamen en databinding veldnaam geeft. Een tweede array bevat de dataelementen met de verschillende subproperties.

Ik wil elke rij dus vullen met de properties als volgt:
HTML:
1
2
3
4
5
<tr>
 <td *ngFor="let col of columns">
                {{rowData[col.field]}}
            </td>
</tr>


Dit werkt dus niet als ik subproperties heb, hoe kan ik op deze manier toch de subproperties tonen?

Mess with the best, die like the rest


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 12:58
Ik zou daar dan een hulp methode voor maken die dan de waarde ophaalt.
Je geeft dan de waardes en de gewenste property mee en in die methode haal je dan de gewenste waarde op.

Of je breidt die column field uit met een extractor die dat per column doet.

let the past be the past.


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Inderdaad met een functie zoals:
JavaScript:
1
2
3
4
5
6
7
8
function getProp(prop, obj) {
    const splitted = prop.split(".");
    if (splitted.length > 1) {
        const prop = splitted[0];
        return this.getProp(splitted.removeAt(0).join("."), obj[prop]);
    }
    return obj[prop];
}


Even snel een idee

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router

Pagina: 1