Skip to content

Commit ff4da36

Browse files
refactor(core): better service handling
1 parent cdd7fda commit ff4da36

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
import { Observable } from "@nativescript/core";
2+
import { FlickService } from "../services";
23
import { FlickModel } from "../models";
34

45
export class DetailsViewModel extends Observable {
5-
constructor(private _context: { flick: FlickModel }) {
6+
private _flick: FlickModel;
7+
constructor(private _context: { flickId: number }) {
68
super();
9+
10+
this._flick = FlickService.getInstance().getFlickById(
11+
this._context.flickId
12+
);
713
}
814

915
get flick(): FlickModel {
10-
return this._context.flick;
16+
return this._flick;
1117
}
1218
}

core-demo/app/home/home-view-model.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ export class HomeViewModel extends Observable {
2020
}
2121

2222
populateFlicks(): void {
23-
const flickService = new FlickService();
24-
this._flicks = flickService.getFlicks();
23+
this._flicks = FlickService.getInstance().getFlicks();
2524
}
2625

2726
onFlickTap(args: ItemEventData): void {
2827
Frame.topmost().navigate({
2928
moduleName: "details/details-page",
30-
context: { flick: this._flicks[args.index] },
29+
context: { flickId: this._flicks[args.index].id },
3130
});
3231
}
3332
}

core-demo/app/services/flick.service.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ export class FlickService {
9090
},
9191
];
9292

93+
static getInstance(): FlickService {
94+
return FlickService._instance;
95+
}
96+
97+
private static _instance: FlickService = new FlickService();
98+
9399
getFlicks(): FlickModel[] {
94100
return this.flicks;
95101
}

0 commit comments

Comments
 (0)