Я пытаюсь установить или снять флажок на основе возвращаемого значения функции в Angular. Функция не вызывается внутри средства рендеринга ячеек.
у меня есть функция
isChecked:boolean=false
isFunDone()
{if data.value == good.value)
return this.isChecked = true;
}
else{
this.isChecked =false;
}
и в Columndef CellRenderer я вызываю это:
cellrenderer: (params: { isChecked: any;}) => {
return `<input type = "checkbox" [checked] = "this.isFunDone.isChecked =='true'"/>`
🤔 А знаете ли вы, что...
Angular использует строгую типизацию TypeScript для обнаружения ошибок на этапе компиляции.
Попробуйте использовать следующий код, чтобы установить или снять флажок в зависимости от возвращаемого значения функции. Если вы измените значение на массив «хороший» или «данные», флажок в выводе будет снят.
HTML-файл:
<input type = "checkbox" [checked] = "isChecked" class = "restricted-checkbox">
CSS-файл:
.restricted-checkbox {
pointer-events: none;
}
Ц файл:
export class MyComponent {
data = { value: 'goodValue' };
good = { value: 'goodValue' };
isChecked = false;
// Method to check if values match and update isChecked
isFunDone(): boolean {
this.isChecked = this.data.value === this.good.value;
return this.isChecked;
}
ngOnInit(): void {
this.isFunDone();
}
}
Если ваша функция глобальная, сделайте это.
ngOnInit(): void {
this.isChecked = this.data.value === this.good.value;
}
// ...
cellrenderer: (params: ICellRendererParams) => {
if (this.isChecked) {
return `<input type = "checkbox" checked>`
} else {
return `<input type = "checkbox">`
}
}
Обратите внимание, что [checked]
не будет работать внутри cellRenderer, если это не другой компонент.
Старый ответ:
Это способ сделать это с помощью ag-grid
cellrenderer: (params: ICellRendererParams) => {
const isChecked = isFunDone(params.value) ? ' checked': ''; //string
return `<input type = "checkbox"${ isChecked }`;
}
// external function accepting any as I dont know your datatype
isFunDone(data: any) {
return (data === good.value);
}