Добавить перечисление для ваших Action
s:
enum Action {
'Delete' = 'delete',
'Edit' = 'primary',
// etc...
}
Добавить функцию для получения класса из enum:
getActionClass(action: string): string {
return Action[action];
}
Получить класс из шаблона:
<button class="btn btn-{{getActionClass(act)}}"
*ngFor="let act of actions"
(click)="actionFunc(act,i)">{{act}}
</button>
Это простой пример.Имейте в виду, что вызовы функций в шаблоне - не самые умные идеи, так как они вызываются при каждом запуске обнаружения изменений.
Другая идея заключается в использовании setter для actions
Input:
_actions: string[];
@Input('actions')
set actions(actions) {
this._actions = actions;
this._actionsWithClasses = this._actions.map(action => {
return { action: action, class: Action[action] };
});
}
get actions() {
return this._actions;
}
_actionsWithClasses: { action: string; class: string }[];
... и затем используйте actionsWithClasses
в шаблоне вместо actions
.