getExports moved to builder

This commit is contained in:
Vladimir Enchev
2015-05-25 12:09:15 +03:00
parent f499ee95a8
commit 342bae570d
2 changed files with 18 additions and 13 deletions

View File

@ -10,6 +10,11 @@ var KNOWNCOLLECTIONS = "knownCollections";
export function parse(value: string, exports: any): view.View {
var viewToReturn: view.View;
if (exports instanceof view.View) {
exports = getExports(exports);
}
var componentModule = parseInternal(value, exports);
if (componentModule) {
@ -150,7 +155,7 @@ function parseInternal(value: string, exports: any): componentBuilder.ComponentM
}
}
}, (e) => {
},(e) => {
throw new Error("XML parse error: " + e.message);
}, true);
@ -184,7 +189,7 @@ function loadInternal(fileName: string, exports: any): componentBuilder.Componen
// Read the XML file.
fileAccess.readText(fileName, result => {
componentModule = parseInternal(result, exports);
}, (e) => {
},(e) => {
throw new Error("Error loading file " + fileName + " :" + e.message);
});
}
@ -234,3 +239,13 @@ interface ComplexProperty {
name: string;
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;
}

View File

@ -105,7 +105,7 @@ export class ListView extends view.View implements definition.ListView {
var v;
if (this.itemTemplate && this.items) {
v = builder.parse(this.itemTemplate, getExports(this));
v = builder.parse(this.itemTemplate, this);
}
return v;
@ -146,13 +146,3 @@ export class ListView extends view.View implements definition.ListView {
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;
}