2017-06-01 9 views
0

: Ich bin in Angular 2. Ich habe ein Objekt Attribute, die es eine Instanz von Karte istWegbeschreibung Attribut Winkel 2

ich auf seinen Wert zugreifen möchten.

in der Konsole zeigt es: attributes map instance

InputFirstComponent

export class InputFirstComponent implements OnInit { 

@Input() public inputFirstToDisplay: CustomInput; 
constructor() { } 
ngOnInit() { 
    console.log('InputFirstComponent: onInit'); 
    console.log(this.inputFirstToDisplay); 
    console.log('attribute Object which i want to acces to its attribute') 
    console.log(this.inputFirstToDisplay.attributes); 
} 
} 

Ich versuchte

console.log(this.inputFirstToDisplay.attributes.get('minOccurs')); 
console.log(this.inputFirstToDisplay.attributes['minOccurs'].value); // 
    print undefined 

Aber das Objekt begründet: Attribute object has minOccurs and maxOccurs

das Objekt inputFirstToDisplay von CustomInput Klasse :

export class CustomInput { 

    constructor(public name: string, public text: string, public defaultText: 
    string, 
      public complexType: boolean, public type: string, public children: 
     CustomInput[] = [], 
      public isMultiValued: boolean, 
      public values: string[] = [], public indicator: string, public 
      required: boolean, 
      public isSelected: boolean, public 
      simpleTypeVarietyOrComplexTypeContent: number, 
      public choiceContent: boolean, public inputQname: string, 
      public attributes: Map<string, string> = new Map<string, string>() 
    ) {} 
     } 

Attribute: Karte (String, String) ist ein Attribut der benutzerdefinierten Eingangsklasse und die ich möchte, um seinen Wert zu gelangen.

Dank

Antwort

1

Wenn Sie gonna verwenden String als Schlüssel gibt es keinen Grund, eine hashmap zu verwenden ist, ist jedes Objekt in Javascript, sowie Typoskript, eine einfache Karte. Der einzige Grund, warum Sie die Map-Klasse verwenden müssen, ist, wenn Sie etwas anderes als einen String als Schlüssel benötigen.

Bitte nehmen Sie sich einen Blick auf diese Frage ->How is a JavaScript hash map implemented?

In Ihrem Fall versuchen console.log (this.inputFirstToDisplay.attributes [ 'minOccurs']); // ohne den Wert

+0

Bitte verknüpfen Sie die referenzierte Frage – borislemke

+0

Danke, es funktioniert. Tatsächlich wähle ich Karte, weil ich die Eingabe vom Backend empfange und nur ich zeige es an. – adem