У меня есть следующие строки таблицы
<tr *ngFor="let firedRule of splitRules(results.rulesFired); let rowNumber = index"
[class.added]="isAdd(firedRule)"
[class.removed]="isRemove(firedRule)"
[class.modified]="isModify(firedRule)">
Вот функция splitRules, которая в основном принимает список правил и разбивает каждое правило на новые свойства:
splitRules(firedRules: FiredRule[]) {
const regExRowNumber = /row\s*([0-9]+)/;
let rowMatch = [];
firedRules.forEach(rule => {
let name = '';
name = rule.ruleName.toLowerCase();
rowMatch = regExRowNumber.exec(name);
const rowNumber = rowMatch[1];
const ruleName = name.substr(rowMatch[0].length).split('-')[0];
const conditionsMatched = name.substr(rowMatch[0].length).split('-')[1];
rule.groupName = ruleName.trim().replace('!', ': ').split(':')[0];
rule.definitionName = ruleName.trim().replace('!', ': ').split(':')[1];
rule.rowNumber = rowNumber;
rule.conditionsMatched = conditionsMatched.trim();
rowMatch = [];
});
return firedRules;
}
Не рекомендуется вызывать метод splitRules
внутри html, поэтому я попытался вызвать его на ngOnInit
следующим образом:
@Input() results: RulesEngineResponse;
ngOnInit(): void {
this.results.rulesFired = this.splitRules(this.results.rulesFired);
}
И удалить Звоните с html, но я получил ERROR TypeError: Cannot read property 'rulesFired' of null
, есть ли способ исправить это?
Буду признателен за любую помощь.