0

Ryan Cavanaughによって受け入れられた回答の精神で、私はリンクすることを許可されていません。これは構造を提案します。

var map: { [email: string]: Customer; } = { };

電子メールアドレスを目的とした文字列キーを使用しての辞書をエミュレートするために、同様の1Customerの疑似辞書を実装しようとしました。SelectionOtherInputDescriptor

export class SelectionOtherInputDescriptor {
    constructor(public selectionName: string, public otherKey: any, public otherInputElementId: string) { }
}
export class SelectionOtherInputHelper {
    selectionsWithOther: { [selectionKey: string]: SelectionOtherInputDescriptor; } = {};
    getAllSelectionOthers() {
        var things = $("[" + ATT_SELECTION_OTHER_FOR + "]");           
        for (var i = 0; i < things.length; i++) {         
            var selectionName = $(things[i]).attr(ATT_SELECTION_OTHER_FOR);
            var desc = new SelectionOtherInputDescriptor(selectionName, 0, $(things[i]).attr("id"));
            this.selectionsWithOther[selectionName] = desc;
        };
        for (var i in this.selectionsWithOther) {
            window.console.log(i);
        }
    };
}

ただし、私の変数にselectionsWithOtherは常に3つの文字列(3つの選択要素とその他の要素があるテストページ)のみが含まれているように見えます。これはselectionKey値です。

1ユーザーが選択要素で[その他]を選択したときに実際の値を取得する入力について説明します。

4

1 に答える 1

3

これは、インデックス文字列(あなたのselectionKey)をトレースするだけです:

for (var i in this.selectionsWithOther) {
    window.console.log(i);
}

そのインデックスにマップされた値をトレースするには、次のものが必要です。

for (var i in this.selectionsWithOther) {
    window.console.log(this.selectionsWithOther[i]); // Will trace 'Object'
    window.console.log(this.selectionsWithOther[i].selectionName); // Should trace the value of the property on that object
}

JS の連想配列の詳細については、http ://www.quirksmode.org/js/associative.html を参照してください。

于 2013-03-05T14:11:59.423 に答える