2017-08-13 137 views
0

我有一個數據,我想在複選框中顯示。數據有一個布爾條件'Y'/'N'。我的問題是複選框輸入只接受真/假。有沒有辦法改變複選框的值而不是true/false我希望它接受'Y'/'N';複選框'Y'/'N'的自定義值而不是真/假。 Angular 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,該鏈接將這些值寫入到文檔中,以便您可以看到這一點。我已經刪除了文件撰寫輸出在這裏代碼:

當你在獲取你的數據:通過對象數組中

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值,然後添加一個具有適當的真/假值的booleanValue鍵,並使用您的複選框將其綁定到該鍵。通過數組中的對象

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

迭代,如果它們是:

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 
    } 
} 

當你保存數據(能見度刪除Y/N值,他們仍然會在您的數據) 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的回答。我知道這太多了,但我可以通過stackoverflow向你發送消息嗎?我真的想問更多問題。如果沒關係。再次非常感謝你:) – ilovejavaAJ

+0

如果答案解決了你的問題,請接受答案。如果您對此有更多疑問,請在此處詢問,以便將來有類似問題的任何人都能從中受益。如果您想更多地瞭解Angular 2,可以在Ultimate Angular Slack Channel上找到我,以及其他一些開發人員。 ultimateangular.slack.com –

+0

@Stepehen非常感謝。無論如何,我想加入ultimateangular.slack.com。但它需要有邀請? – ilovejavaAJ