dalijs
Version:
ES6 framework
28 lines (24 loc) • 712 B
JavaScript
import {Inject} from '../di/Inject';
import {Directive} from './Directive';
import {Evaluator} from '../evaluator/Evaluator';
({
name: 'data-class'
})
(Evaluator)
export class DataClass {
constructor(evaluator) {
this.evaluator = evaluator;
}
render(element, data, value) {
let classNames = value.split(',');
classNames.forEach((className) => {
let [elementClassName, elementValue] = className.split(':');
elementClassName = elementClassName.trim().replace(/'/gm, "");
if (this.evaluator.eval(data, elementValue)) {
element.classList.add(elementClassName);
} else {
element.classList.remove(elementClassName);
}
});
}
}