2017-08-05 37 views
0

我有一個情況,我的http響應對象是這樣的。需要字符串值時檢查和取消選中角2

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

true」和「false」是一個字符串值,從而**ngModel**不能使checkbox檢查作爲每隻動物對象值。當我點擊checkbox時,該值會自動更改爲像這樣的布爾值。

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

所以,當我通過http發送這個數據後,後端無法接受那個數據。在後端由Laravel運行。對於那些屬性,有枚舉字段。誰能給我解決方案。

下面是可視化 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

你檢查過plunker例子嗎?我需要不同的解決方案。請仔細檢查一次。您的loadsh回答對其他解決方案有好處。 –

+0

在NG2中管理表單數據時,不應該這樣做。相反,只需在將數據發送到Laravel BE之前,將數據轉換爲上面公佈的實用程序fn即可。或者告訴BE人他應該使用JSON序列化程序,並且應該支持實際的布爾值而不是當前的hacky方法。不支持布爾值是可笑的。 – Denialos

+0

是的,對吧,我需要和BE的人談談給我發佈布爾值。 (Y) –

相關問題