From 342bae570d9a94c5142d2151d4634d21fc87337c Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 25 May 2015 12:09:15 +0300 Subject: [PATCH] getExports moved to builder --- ui/builder/builder.ts | 19 +++++++++++++++++-- ui/list-view/list-view-common.ts | 12 +----------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ui/builder/builder.ts b/ui/builder/builder.ts index bebdc1a67..b68cad7ac 100644 --- a/ui/builder/builder.ts +++ b/ui/builder/builder.ts @@ -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; } + +function getExports(instance: view.View): any { + var parent = instance.parent; + + while (parent && (parent).exports === undefined) { + parent = parent.parent; + } + + return parent ? (parent).exports : undefined; +} \ No newline at end of file diff --git a/ui/list-view/list-view-common.ts b/ui/list-view/list-view-common.ts index 5a55f14f3..164b8a172 100644 --- a/ui/list-view/list-view-common.ts +++ b/ui/list-view/list-view-common.ts @@ -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; @@ -145,14 +145,4 @@ export class ListView extends view.View implements definition.ListView { private _onItemsChanged(args: observable.EventData) { this.refresh(); } -} - -function getExports(instance: view.View): any { - var parent = instance.parent; - - while (parent && (parent).exports === undefined) { - parent = parent.parent; - } - - return parent ? (parent).exports : undefined; } \ No newline at end of file