fix(core): added item template handling for external renderers (#10196)

This commit is contained in:
Dimitris-Rafail Katsampas
2023-02-03 07:58:01 +02:00
committed by GitHub
parent 485fb61947
commit b993a83f23
2 changed files with 10 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import { Observable, EventData } from '../../data/observable';
import { ObservableArray, ChangedData } from '../../data/observable-array';
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
import { CoreTypes } from '../../core-types';
import { isFunction } from '../../utils/types';
const autoEffectiveRowHeight = -1;
@ -28,8 +29,13 @@ export abstract class ListViewBase extends ContainerView implements ListViewDefi
key: 'default',
createView: () => {
if (__UI_USE_EXTERNAL_RENDERER__) {
} else if (this.itemTemplate) {
return Builder.parse(this.itemTemplate, this);
if (isFunction(this.itemTemplate)) {
return (<Template>this.itemTemplate)();
}
} else {
if (this.itemTemplate) {
return Builder.parse(this.itemTemplate, this);
}
}
return undefined;

View File

@ -8,6 +8,7 @@ import { ObservableArray, ChangedData } from '../../data/observable-array';
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
import { Builder } from '../builder';
import { profile } from '../../profiling';
import { isFunction } from '../../utils/types';
export interface ItemsSource {
length: number;
@ -130,7 +131,7 @@ export class Repeater extends CustomLayoutView {
if (!viewToAdd) {
if (__UI_USE_EXTERNAL_RENDERER__) {
viewToAdd = this._getDefaultItemContent(i);
viewToAdd = isFunction(this.itemTemplate) ? (<Template>this.itemTemplate)() : this._getDefaultItemContent(i);
} else {
viewToAdd = this.itemTemplate ? Builder.parse(this.itemTemplate, this) : this._getDefaultItemContent(i);
}