Fixed Issue #1335: Page (xml) with no content does not fire loaded callbacks in ActionBar.

This commit is contained in:
Rossen Hristov
2016-02-17 17:00:36 +02:00
parent a6700d3b11
commit c6f48c688b
2 changed files with 60 additions and 1 deletions

View File

@ -409,6 +409,62 @@ export function test_CanDefineEverythingAsContentBetweenTheTwoTags() {
});
}
export function test_LoadedEventsOrder() {
var loadedEvents = new Array<string>();
var pageFactory = function (): PageModule.Page {
var page = new PageModule.Page();
page.on(viewModule.View.loadedEvent, () => {
loadedEvents.push("page");
});
page.actionBar.on(viewModule.View.loadedEvent, () => {
loadedEvents.push("action-bar");
});
var content = new LabelModule.Label();
content.on(viewModule.View.loadedEvent, () => {
loadedEvents.push("content");
});
page.content = content;
return page;
};
helper.navigate(pageFactory);
try {
TKUnit.arrayAssert(loadedEvents, new Array<string>("content", "action-bar", "page"));
}
finally {
helper.goBack();
}
};
export function test_LoadedEventsOrder_WithoutPageContent() {
var loadedEvents = new Array<string>();
var pageFactory = function (): PageModule.Page {
var page = new PageModule.Page();
page.on(viewModule.View.loadedEvent, () => {
loadedEvents.push("page");
});
page.actionBar.on(viewModule.View.loadedEvent, () => {
loadedEvents.push("action-bar");
});
return page;
};
helper.navigate(pageFactory);
try {
TKUnit.arrayAssert(loadedEvents, new Array<string>("action-bar", "page"));
}
finally {
helper.goBack();
}
};
export function createPageAndNavigate() {
var page: PageModule.Page;
var pageFactory = function (): PageModule.Page {

View File

@ -280,10 +280,13 @@ export class Page extends ContentView implements dts.Page {
public _eachChildView(callback: (child: view.View) => boolean) {
super._eachChildView(callback);
callback(this.actionBar);
}
get _childrenCount(): number {
return (this.content ? 1 : 0) + (this.actionBar ? 1 : 0);
}
private _applyCss() {
if (this._cssApplied) {
return;