我有一个动态数组,代表一个表中的列,并且我有一个表中的行的数组。我在我的有角4个组件中将数组作为输入,但在获取它们之前我对列一无所知(应该对多种类型的变量起作用)。
每列都有一个变量,说明是否强制执行此操作,并据此,在将新行插入行数组或更改现有行之前,构建了一个要运行的条件字符串。
我正在ngInit中创建条件,创建后看起来像这样:
"(r.id == null) || (r.name == '')"
,依此类推(也可能是&&)
我试图将条件绑定到按钮的Disabled属性,但是我似乎无法将其转换为实数。
如何将其转换为条件以便执行并相应地返回true / false?
我已经尝试过[disabled]="[conditionVar]"
,也尝试使用。
${condition}
,
但是那些没用
我的代码看起来像这样: myComponent.ts:
export class Column {
title: string;
fieldName:string;
mandatory: boolean;
}
@Component({
selector: 'myComponent',
templateUrl: './myComponent.component.html',
styleUrls: ['./myComponent.component.css']
})
export class MyComponentimplements OnInit {
@Input() columns:Column[];
@Input() rows;
conditionString = "";
constructor() { }
ngOnInit() {
for (let c of columns.filter(d=>d.mandatory)) {
this.conditionString += "(r." + c['fieldName'] + " == null) || "; // 'r' is the name of the variable that i want to run the condition on
}
this.conditionString = this.conditionString.substr(0, this.conditionString.length - 4); // to remove the last ||
}
}
myComponent.html:
<table>
...
<tbody>
<tr *ngFor="let r of rows">
<td *ngFor="let c of columns">
<input [(ngModel)]="r.[c.fieldName]">
</td>
<td *ngFor="let c of columns">
<button [disabled]="here I want to bind my condition">save this row</button>
</td>
</tr>
</tbody>
</table>
(用户应编辑行,如果需要,他可以保存更改) 除了条件的约束之外,所有事情都有效