复选框'Y'/'N'的自定义值而不是true / false。 Angular 2

时间:2017-08-13 00:43:54

标签: angular

我有一个数据,我想在复选框中显示。数据有一个布尔条件'Y'/'N'。我的问题是复选框输入只接受true / false。有没有办法改变复选框的值而不是true / false我希望它接受'Y'/'N';

示例数据:

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

1 个答案:

答案 0 :(得分: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键,并使用您的复选框绑定到该键。

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值,它们仍会存在于您的数据中):

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值,则将value键设置为适当的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