2016-09-20 3 views
0

ich eine Liste erschaffe mit ng-repeat wie folgt aus:Wie Schlüssel eines Objekts dynamisch innerhalb Winkelschablone zuzugreifen

<li ng-repeat="(key, value) in Myctrl.data"> {{Myctrl.resources.key}}</li> 

Myctrl.data wird wie folgt aussehen somthing:

{ 
personal : 
    {a: 100, b: 120}, 
professional : 
    { a: 320, b : 410} 
} 

Jetzt In MyCtrl habe ich einige Zuordnungen in resources Objekt für jeden der Schlüssel, die von ng-repeat erhalten werden, und ich möchte die Werte dieser Schlüssel abrufen und in Listenelemente einfügen. So

$scope.resources = { 
    personal: "Personal Details", 
    professional: "Professional Details", 
    freelance: "Freelance Details", 
    custom: "Custom Details" 
} 

wenn meine ng-Wiederholung ausgeführt wird, werde ich personal, professional etc bekommen und ich möchte die Werte aus resources Objekt in meinem HTML ersetzen.

Wie kann ich key in {{Myctrl.resources.key}} durch den tatsächlichen Wert des in ng-repeat erhaltenen Schlüssels ersetzen.

+0

Welche Schlüssel enthält Myctrl.data? und kannst du erklären, was du genau brauchst? –

Antwort

1

Try this ...

<li ng-repeat="(key, value) in Myctrl.data">{{Myctrl.resources[key]}}</li> 
+0

Ich suche das nicht. Ich möchte den Schlüssel nehmen und auf einen Wert vom Ressourcenobjekt zugreifen, das denselben Schlüssel hat. –

+2

Sry, mein Schlechter! Versuchen Sie die folgende ...

  • {{Myctrl.resources [key]}}
  • +0

    Danke. Dies macht den Trick. –

    0
    <li ng-repeat="(key, value) in Myctrl.data"> {{resources.key}}</li> 
    

    Wille erzeugt Ausgangslistenelemente als

    Personal Details 
    Professional Details 
    

    Weil in Ihrem wiederholen produziert

    firsttime key is personal 
        {{resources.personal}} => Personal Details 
    secondtime key is professional 
        {{resources.professional}} => Professional Details 
    

    Dies ist es, wie funktioniert genau, was du eigentlich machst Du suchst das nur?

    +0

    Haben Sie diesen Code sogar getestet? Genau das habe ich geschrieben. Es funktioniert nicht. –

    +0

    Ja, es funktioniert nicht, deshalb habe ich es geändert {{Myctrl.resources.key}} zu {{resources.key}} –

    +0

    Es ist eine Instanzvariable vom Controller. Es gibt nichts als Ressourcen. Wir können tatsächlich über Tasten statt über Punktnotation zugreifen. Das macht den Trick. –

    Verwandte Themen