mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
fix(core): added item template handling for external renderers (#10196)
This commit is contained in:

committed by
GitHub

parent
485fb61947
commit
b993a83f23
@ -10,6 +10,7 @@ import { Observable, EventData } from '../../data/observable';
|
|||||||
import { ObservableArray, ChangedData } from '../../data/observable-array';
|
import { ObservableArray, ChangedData } from '../../data/observable-array';
|
||||||
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
|
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
|
||||||
import { CoreTypes } from '../../core-types';
|
import { CoreTypes } from '../../core-types';
|
||||||
|
import { isFunction } from '../../utils/types';
|
||||||
|
|
||||||
const autoEffectiveRowHeight = -1;
|
const autoEffectiveRowHeight = -1;
|
||||||
|
|
||||||
@ -28,9 +29,14 @@ export abstract class ListViewBase extends ContainerView implements ListViewDefi
|
|||||||
key: 'default',
|
key: 'default',
|
||||||
createView: () => {
|
createView: () => {
|
||||||
if (__UI_USE_EXTERNAL_RENDERER__) {
|
if (__UI_USE_EXTERNAL_RENDERER__) {
|
||||||
} else if (this.itemTemplate) {
|
if (isFunction(this.itemTemplate)) {
|
||||||
|
return (<Template>this.itemTemplate)();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.itemTemplate) {
|
||||||
return Builder.parse(this.itemTemplate, this);
|
return Builder.parse(this.itemTemplate, this);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
},
|
},
|
||||||
|
@ -8,6 +8,7 @@ import { ObservableArray, ChangedData } from '../../data/observable-array';
|
|||||||
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
|
import { addWeakEventListener, removeWeakEventListener } from '../core/weak-event-listener';
|
||||||
import { Builder } from '../builder';
|
import { Builder } from '../builder';
|
||||||
import { profile } from '../../profiling';
|
import { profile } from '../../profiling';
|
||||||
|
import { isFunction } from '../../utils/types';
|
||||||
|
|
||||||
export interface ItemsSource {
|
export interface ItemsSource {
|
||||||
length: number;
|
length: number;
|
||||||
@ -130,7 +131,7 @@ export class Repeater extends CustomLayoutView {
|
|||||||
|
|
||||||
if (!viewToAdd) {
|
if (!viewToAdd) {
|
||||||
if (__UI_USE_EXTERNAL_RENDERER__) {
|
if (__UI_USE_EXTERNAL_RENDERER__) {
|
||||||
viewToAdd = this._getDefaultItemContent(i);
|
viewToAdd = isFunction(this.itemTemplate) ? (<Template>this.itemTemplate)() : this._getDefaultItemContent(i);
|
||||||
} else {
|
} else {
|
||||||
viewToAdd = this.itemTemplate ? Builder.parse(this.itemTemplate, this) : this._getDefaultItemContent(i);
|
viewToAdd = this.itemTemplate ? Builder.parse(this.itemTemplate, this) : this._getDefaultItemContent(i);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user