Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

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

Pagina: 1
Acties:

Vraag


  • ThaStealth
  • Registratie: oktober 2004
  • Nu online
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:35
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: 16-09 07:39
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
  • Nu online
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: 16-09 07:39
Nee, per blokhaak kan je 1 object / property dieper.

  • ThaStealth
  • Registratie: oktober 2004
  • Nu online
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
  • 0Henk 'm!

  • SPee
  • Registratie: oktober 2001
  • Laatst online: 12:35
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
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! System
Portfolio! site

Pagina: 1


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Smartphones

'14 '15 '16 '17 2018

Tweakers vormt samen met Tweakers Elect, Hardware Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True