Support for binding expressions in event bindings

This commit is contained in:
Vladimir Enchev
2015-09-12 11:02:32 +03:00
parent 67c29e728d
commit 81c066e5e3
5 changed files with 80 additions and 62 deletions

View File

@@ -560,6 +560,43 @@ export function test_parse_ShouldParseNestedListViewInListViewTemplate() {
}
}
export function test_parse_ShouldEvaluateEventBindingExpressionInListViewTemplate() {
var p = <Page>builder.parse('<Page xmlns="http://www.nativescript.org/tns.xsd"><ListView items="{{ items }}" itemLoading="{{ itemLoading }}"><ListView.itemTemplate><SegmentedBar items="{{ $parents[\'ListView\'].items }}" selectedIndexChanged="{{ $parents[\'ListView\'].changed }}" /></ListView.itemTemplate></ListView></Page>');
function testAction(views: Array<viewModule.View>) {
var ctrl: segmentedBar.SegmentedBar;
var changed;
var obj = new observable.Observable();
obj.set("items", [1, 2, 3]);
obj.set("itemLoading", function (args: listViewModule.ItemEventData) {
ctrl = <segmentedBar.SegmentedBar>args.view
});
obj.set("changed", function (args: observable.EventData) {
changed = true;
});
p.bindingContext = obj;
TKUnit.wait(0.2);
ctrl.selectedIndex = 1;
TKUnit.assert(changed, "Expected result: true!; Actual result: " + changed);
};
helper.navigate(function () { return p; });
try {
testAction([p.content, p]);
}
finally {
helper.goBack();
}
}
export function test_parse_NestedRepeaters() {
var pageXML =
"<Page xmlns='http://www.nativescript.org/tns.xsd'>" +