2017-03-18 11 views
0

ブラケット記号でダイナミックキーを使用すると、単純なオブジェクトのプロパティにアクセスできません。ここに私のコードは次のとおりです。ダイナミックキーを持つオブジェクトへのアクセスTypescript

にconsole.logで
import { Component, OnInit } from '@angular/core'; 
import { DisplayFeederService } from '../../services/display-feeder/display-feeder.service'; 

interface IData { 
    [key: string]: any; 
} 

@Component({ 
    selector: 'display', 
    templateUrl: './display.component.html', 
    styleUrls: ['./display.component.css'] 
}) 
export class DisplayComponent implements OnInit { 
    measurementValue: any; 
    measurementType: any; 
    private typesTable: IData = { 
    vdc: 'DC Volt' 
    }; 

    constructor(private displayFeederService: DisplayFeederService) { 
    this.displayFeederService.displayData$.subscribe(data => { 
     this.measurementValue = data.val; 
     this.measurementType = this.typesTable[data.type]; 
     console.log(this.typesTable, data.type, this.typesTable[data.type]) 
    }) 
    } 

    ngOnInit() { 
    } 

} 

私はこの取得しています:

オブジェクト{VDC: "DCボルト"}

"VDC" 未定義だから私のオブジェクトがあります有効ですが、動的キーは正しいですが、synatxオブジェクト[動的キー]は私のために働いていません。このようにthis.typesTable ['vdc']のようにアクセスしようとすると動作しますが、将来的にはより動的なキーを持つため、必要なものではありません。

私を適切な方向に導くことができますか? ありがとう

+0

'data.type'の戻り値の型は何ですか? – ulubeyn

+0

あなたのサービスが返すサービスコードとサンプルjsonで投稿を更新する – Aravind

答えて

0

私の場合の問題は、開発ツールコンソールで「vdc」と表示されていても、マイクロコントローラが「vdc \ n」を送信しているということでした。空白が私の髪の半分をゆるやかにしました。みんなありがとう。

関連する問題