2017-08-13 10 views
0

私はチェックボックスに表示したいデータを持っています。データのブール条件は 'Y'/'N'です。私の問題はチェックボックスの入力はtrue/falseを受け入れるだけです。チェックボックスの値を変更する方法はありますか?true/falseの代わりに、 'Y'/'N'を受け入れるようにします。true/falseではなく、チェックボックス 'Y'/'N'のカスタム値。角2

サンプルデータ:

[{ 
    "id": 1, 
    "value": "0.59" 
}, { 
    "id": 2, 
    "value": "N" 
}, { 
    "id": 3, 
    "value": "LOW" 
}, { 
    "id": 4, 
    "value": "HIGH" 
}, { 
    "id": 5, 
    "value": "Y" 
}] 
+0

あなたはsettorとモデルの変数にあるチェックボックスを結合することができます。変数がtrueに設定されている場合は、別の隠しフォームの入力値を「Y」に更新します。変数がfalseに設定されている場合は、非表示の入力を 'N 'に更新してください。 – BeetleJuice

+0

これは私が最初にやろうとしていることですが、実装すれば効率的ではないと思うと多くのチェックボックスがあります。今私はカスタムコンポーネント/入力を作成したいが、それでもYとNに変更する方法がわからない – ilovejavaAJ

+0

どのようにデータを取得していますか? Observable経由のサービスから?最初にデータを取得して値に直接バインドするときに、.mapを使用してデータのY/N値を真/偽に変換することができます。 –

答えて

1

あなたがより効率的にこれを行うことが、しかし、これは問題の解決策を記述するための最も明確な方法であり、それは上の拡大/実装/読みやすいです。私は、あなたが実際にこれを見ることができるように、値を文書に書き出す、下の方にplnkrへのリンクを含んでいます。あなたがあなたのデータにフェッチしているとき

:私はここのコードでのdocument.write出力を削除した

const data = [{ 
    "id": 1, 
    "value": "0.59" 
}, { 
    "id": 2, 
    "value": "N" 
}, { 
    "id": 3, 
    "value": "LOW" 
}, { 
    "id": 4, 
    "value": "HIGH" 
}, { 
    "id": 5, 
    "value": "Y" 
}] 

反復は、オブジェクトを通して配列で、彼らはYまたはNの値であれば、適切なtrue/false値を持つbooleanValueキーを追加し、チェックボックスを使用してその値にバインドします。

あなたのデータを保存しているとき(可視性のために取り外さY/N値、彼らはまだあなたのデータになります)
for (var i=0; i<data.length; i++) { 
    if (data[i].value == "Y") { 
    data[i].boolValue = true 
    } else if (data[i].value == "N") { 
    data[i].boolValue = false 
    } 
} 

const submitData = [{ 
    "id": 1, 
    "value": "0.59" 
}, { 
    "id": 2, 
    "boolValue": true 
}, { 
    "id": 3, 
    "value": "LOW" 
}, { 
    "id": 4, 
    "value": "HIGH" 
}, { 
    "id": 5, 
    "boolValue": false 
}] 

反復配列内のオブジェクトを通じて、彼らがしている場合trueまたはfalseの値を入力し、値のキーを適切なY/N値に設定します。

for (var i=0; i<submitData.length; i++) { 
    if (submitData[i].boolValue == true) { 
    submitData[i].value = "Y" 
    } else if (submitData[i].boolValue == false) { 
    submitData[i].value = "N" 
    } 
} 

https://plnkr.co/edit/DrAvyMV5BqADhLdTTn6M?p=preview

+0

答えのためのおかげで@Stephen。私はそれがあまりにも多いことを知っていますが、私は本当に多くの質問をしたい。それは大丈夫です。もう一度ありがとうございます:) – ilovejavaAJ

+0

答えがあなたの問題を解決する場合は、答えを受け入れてください。具体的にこれ以上の質問がある場合は、似たような問題を抱える他の誰かが恩恵を受けることができるように、ここで質問してください。あなたが角度2についてもっと話したいのであれば、あなたは他の多くの開発者と一緒に、究極の角度スラックチャンネルで私を見つけることができます。 ultimateangular.slack.com –

+0

@Stepehenありがとうございます。とにかく私はultimateangular.slack.comに加わりたいと思います。しかし、それは招待状を持っている必要がありますか? – ilovejavaAJ

関連する問題