FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

tests: add tests for changing ListView item template with expression · NativeScript/NativeScript@86629dc · GitHub

Commit 86629dc

Browse files
authored andcommitted
tests: add tests for changing ListView item template with expression
1 parent 5e70d03 commit 86629dc

4 files changed

Lines changed: 52 additions & 3 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Page } from "tns-core-modules/ui/page";
2+
import { ViewModel } from "./main-view-model";
3+
4+
export function pageLoaded(args) {
5+
let page = <Page>args.object;
6+
const viewModel = new ViewModel();
7+
8+
page.bindingContext = {
9+
"items": viewModel.items
10+
}
11+
}
12+
13+
exports.onItemTap = function (args) {
14+
const list = args.object;
15+
let index = args.index;
16+
let listArray = list.page.bindingContext["items"];
17+
let currentItem = listArray.getItem(index);
18+
19+
currentItem.age = currentItem.age + 1;
20+
listArray.setItem(index, currentItem);
21+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Page loaded="pageLoaded">
2+
<GridLayout id="grid-layout">
3+
<ListView id="lv1" items="{{ items }}" itemTemplateSelector="age % 2 === 0 ? 'green':'red'" itemTap="onItemTap">
4+
<ListView.itemTemplates>
5+
<template key="red">
6+
<Label text="{{ name + ' ' + id }}" style.backgroundColor="red"/>
7+
</template>
8+
<template key="green">
9+
<Label text="{{ name + ' ' + id }}" style.backgroundColor="green"/>
10+
</template>
11+
</ListView.itemTemplates>
12+
</ListView>
13+
</GridLayout>
14+
</Page>

‎apps/app/ui-tests-app/list-view/main-page.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export function loadExamples() {
1313
const examples = new Map<string, string>();
1414
examples.set("list-view-templates", "list-view/list-view");
1515
examples.set("images-template", "list-view/images-template");
16+
examples.set("dynamic-templates", "list-view/dynamic-templates");
1617
examples.set("bindings", "list-view/listview-binding");
1718
examples.set("listview-bg-separator-color", "list-view/listview-bg-separator-color");
1819
examples.set("csslv", "list-view/csslv");

‎apps/app/ui-tests-app/list-view/main-view-model.ts‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import { ObservableArray } from "tns-core-modules/data/observable-array";
44
export class Item extends Observable {
55
private _name: string;
66
private _id: number;
7+
private _age: number;
78

8-
constructor(name: string, id: number) {
9+
constructor(name: string, id: number, age: number) {
910
super();
1011
this._name = name;
1112
this._id = id;
13+
this._age = age;
1214
}
1315

1416
get name(): string {
@@ -33,6 +35,17 @@ export class Item extends Observable {
3335
}
3436
}
3537

38+
get age(): number {
39+
return this._age;
40+
}
41+
42+
set age(value: number) {
43+
if (this._age !== value) {
44+
this._age = value;
45+
this.notifyPropertyChange("age", value)
46+
}
47+
}
48+
3649
public toString() {
3750
return `${this.name} ${this.id}`;
3851
}
@@ -43,8 +56,8 @@ export class ViewModel extends Observable {
4356

4457
get items(): ObservableArray<Item> {
4558
this._items = new ObservableArray<Item>();
46-
for (let i = 0; i < 100; i++) {
47-
this._items.push(new Item(`Item`, i));
59+
for (let i = 0; i < 3; i++) {
60+
this._items.push(new Item(`Item`, i, 0));
4861
}
4962
return this._items;
5063
}

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL