@dooboostore/dom-render
Version:
html view template engine
38 lines (34 loc) • 1.18 kB
text/typescript
import { ComponentBase } from '../ComponentBase';
import { DomRender, DomRenderRunConfig } from '../../DomRender';
import { RawSet } from '../../rawsets/RawSet';
import { OtherData } from '../../lifecycle/OnChangeAttrRender';
export namespace ForOf {
export const selector = 'dr-for-of';
export type Attribute<D> = {
value: D;
};
// @Component({
// template: '<div dr-for-of="@this@.data" dr-option-strip="true">#innerHTML#</div>',
// selector: `${selector}`
// })
export class ForOf<D> extends ComponentBase<Attribute<D>> {
private value?: D;
onChangeAttrRender(name: string, value: any, other: OtherData) {
super.onChangeAttrRender(name, value, other);
if (this.equalsAttributeName(name, 'value')) {
this.value = value;
}
}
}
}
export default {
forOf: (config?: DomRenderRunConfig) => {
return RawSet.createComponentTargetElement({
name: ForOf.selector,
template: '<div dr-for-of="@this@.value" >#innerHTML#</div>',
objFactory: (e, o, r2, counstructorParam) => {
return DomRender.run({ rootObject: new ForOf.ForOf(...counstructorParam), config: config });
}
});
}
};