我在angular 2项目中使用了primeNg p-switch。 primeNg输入开关的默认值设置为布尔值。我希望输入开关的值设置为'N'或'Y'而不是true或false
@export class MyComponent{
persons: Person[] = [{'name':'Marvin','legalAge': 'Y'}, {'name':'Carla','legalAge': 'N'} ] }
在html模板中
<p-dataTable [value]="persons">
<p-column field="name" header="Name"></p-column>
<p-column field="legalAge" [sortable]="true" header="is Legal Age?">
<template let-l="rowData" pTemplate>
<p-inputSwitch [(ngModel)]="l"></p-inputSwitch>
</template>
</p-column>
</p-dataTable>
答案 0 :(得分:0)
您可以自定义primeNg,如下例
public static void printToCsv(List<String> resultArray) throws Exception{
File csvOutputFile = new File(file_name);
FileWriter fileWriter = new FileWriter(csvOutputFile, false);
for(String mapping : resultArray) {
fileWriter.write(mapping + "\n");
}
fileWriter.close();
}
将模型声明更改为:
<p-inputSwitch onLabel="Y" offLabel="N" [(ngModel)]="booleanString"></p-inputSwitch>
请仔细阅读文档
答案 1 :(得分:0)
由于PrimeNG inputSwitch
仅绑定为boolean
,因此您需要拥有更改事件函数并将string
值绑定到新属性。
您可以使用(ngModelChange)
或website上提到的(onChange)="handleChange($event)"
来执行此操作。
请参见此工作plunker。
更新了DataTable模块的plunker。 :link
答案 2 :(得分:0)
请记住,此代码
<my-stuff [(foo)]="bar"></my-stuff>
只是写这个的语法糖:
<my-stuff [foo]="bar" (fooChange)="bar = $event"></my-stuff>
双向输入的输出始终使用Change
后缀和$event
作为分配值的事件。这里$event
是布尔值。
考虑到这一点,您可以使用p-inputSwitch
:
<p-inputSwitch
[ngModel]="myProp === 'Y'"
(ngModelChange)="myProp = $event ? 'Y' : 'N'"
></p-inputSwitch>
虽然,我不确定使用字符串而不是普通的布尔值是否是个好主意。