mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
getExports moved to builder
This commit is contained in:
@ -10,6 +10,11 @@ var KNOWNCOLLECTIONS = "knownCollections";
|
|||||||
|
|
||||||
export function parse(value: string, exports: any): view.View {
|
export function parse(value: string, exports: any): view.View {
|
||||||
var viewToReturn: view.View;
|
var viewToReturn: view.View;
|
||||||
|
|
||||||
|
if (exports instanceof view.View) {
|
||||||
|
exports = getExports(exports);
|
||||||
|
}
|
||||||
|
|
||||||
var componentModule = parseInternal(value, exports);
|
var componentModule = parseInternal(value, exports);
|
||||||
|
|
||||||
if (componentModule) {
|
if (componentModule) {
|
||||||
@ -150,7 +155,7 @@ function parseInternal(value: string, exports: any): componentBuilder.ComponentM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}, (e) => {
|
},(e) => {
|
||||||
throw new Error("XML parse error: " + e.message);
|
throw new Error("XML parse error: " + e.message);
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
@ -184,7 +189,7 @@ function loadInternal(fileName: string, exports: any): componentBuilder.Componen
|
|||||||
// Read the XML file.
|
// Read the XML file.
|
||||||
fileAccess.readText(fileName, result => {
|
fileAccess.readText(fileName, result => {
|
||||||
componentModule = parseInternal(result, exports);
|
componentModule = parseInternal(result, exports);
|
||||||
}, (e) => {
|
},(e) => {
|
||||||
throw new Error("Error loading file " + fileName + " :" + e.message);
|
throw new Error("Error loading file " + fileName + " :" + e.message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -234,3 +239,13 @@ interface ComplexProperty {
|
|||||||
name: string;
|
name: string;
|
||||||
items?: Array<any>;
|
items?: Array<any>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getExports(instance: view.View): any {
|
||||||
|
var parent = instance.parent;
|
||||||
|
|
||||||
|
while (parent && (<any>parent).exports === undefined) {
|
||||||
|
parent = parent.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent ? (<any>parent).exports : undefined;
|
||||||
|
}
|
@ -105,7 +105,7 @@ export class ListView extends view.View implements definition.ListView {
|
|||||||
var v;
|
var v;
|
||||||
|
|
||||||
if (this.itemTemplate && this.items) {
|
if (this.itemTemplate && this.items) {
|
||||||
v = builder.parse(this.itemTemplate, getExports(this));
|
v = builder.parse(this.itemTemplate, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
@ -146,13 +146,3 @@ export class ListView extends view.View implements definition.ListView {
|
|||||||
this.refresh();
|
this.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getExports(instance: view.View): any {
|
|
||||||
var parent = instance.parent;
|
|
||||||
|
|
||||||
while (parent && (<any>parent).exports === undefined) {
|
|
||||||
parent = parent.parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent ? (<any>parent).exports : undefined;
|
|
||||||
}
|
|
Reference in New Issue
Block a user