2017-08-05 7 views
0

私のhttp応答オブジェクトがこのような状況にあります。角度2のチェックとチェックを外すと文字列値が必要

animal:any = { 
    "dog": "true", 
    "cat": "false" 
    } 

true」と「false」そう**ngModel**checkboxが動物オブジェクト値ごとに確認することはできません文字列値です。そしていつでも私がcheckboxをクリックすると、値はこのようなブール値に自動的に変更されます。

{ 
    "dog": false, 
    "cat": "false" 
} 

したがって、このデータをhttp投稿で送信すると、バックエンドはそのデータを受け入れることができません。彼らのバックエンドではLaravelによって実行されています。そのプロパティには、列挙型フィールドがあります。誰も私に解決策を与えることができます。あなたは、文字列にオブジェクトのすべてのboolean型の値を変換するだけでオブジェクトを反復処理し、それはそれだする必要がある場合はここで

は、可視化 https://embed.plnkr.co/DQUqFmnSjhtkBy0DeZHI/

+0

これらの両方の違いは何ですか? – Aravind

+0

文字列とブール値の違い。オブジェクトに文字列値が必要です。プランカをチェックしてください。 –

+0

チェックボックスはブール値を返します。どのように文字列にすることができます。なぜあなたは強制的に文字列が必要なのでしょうか? – Aravind

答えて

0

ためplunkerです:

import isBoolean from 'lodash/isBoolean'; 

const convertBooleanValuesToString = (obj) => { 
    const newObj = []; 
    Object.keys(obj).forEach(key => { 
    const value = obj[key]; 
    newObj[key] = isBoolean(value) ? value.toString() : value; 
    }) 
    return newObj;      
} 

してください、あなたの問題を誤解した場合のフィードバックを提供してください。

+0

に変換するバックエンドの問題です。私が共有しているプラ​​カードの例をチェックしましたか?私は別の解決策が必要です。一度慎重に確認してください。あなたのloadshの答えは他の解決策には良いです。 –

+0

NG2でフォームのデータを管理するときに、このようなハッキングを行うべきではありません。代わりに、データをLaravel BEに送信する前に、上記のようにユーティリティfnを使用してデータを変換してください。 JSONシリアライザで遊ぶべきであるとBEの人に伝え、現在のハッキーなアプローチの代わりに実際のブール値をサポートする必要があります。ブール値をサポートしていないというのは、まあ、ばかげている。 – Denialos

+0

はい、私はbo男の値を私に送るためにBEの男と話をする必要があります。 (Y) –

関連する問題