mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-26 11:17:04 +08:00
feat(core): support for external XML UI compilers (#10008)
This commit is contained in:

committed by
GitHub

parent
40b9e3578f
commit
75503ef110
@ -55,9 +55,19 @@ export class Builder {
|
||||
|
||||
return view;
|
||||
} else {
|
||||
let componentView;
|
||||
if (__UI_USE_XML_PARSER__) {
|
||||
const componentModule = loadInternal(moduleName, moduleExports);
|
||||
const componentView = componentModule && componentModule.component;
|
||||
|
||||
componentView = componentModule && componentModule.component;
|
||||
} else {
|
||||
const resolvedXmlModuleName = resolveModuleName(moduleName, 'xml');
|
||||
const componentModule = resolvedXmlModuleName ? global.loadModule(resolvedXmlModuleName, true) : null;
|
||||
if (componentModule?.default) {
|
||||
componentView = new componentModule.default();
|
||||
} else {
|
||||
throw new Error('Failed to load component from module: ' + moduleName);
|
||||
}
|
||||
}
|
||||
return componentView;
|
||||
}
|
||||
}
|
||||
@ -244,5 +254,3 @@ function parseInternal(value: string, context: any, xmlModule?: string, moduleNa
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -130,7 +130,7 @@ export class Repeater extends CustomLayoutView {
|
||||
|
||||
if (!viewToAdd) {
|
||||
if (__UI_USE_EXTERNAL_RENDERER__) {
|
||||
viewToAdd = this._getDefaultItemContent(i)
|
||||
viewToAdd = this._getDefaultItemContent(i);
|
||||
} else {
|
||||
viewToAdd = this.itemTemplate ? Builder.parse(this.itemTemplate, this) : this._getDefaultItemContent(i);
|
||||
}
|
||||
|
Reference in New Issue
Block a user