UNPKG

tns-template-master-detail-kinvey-ts

Version:

Master-detail interface to display collection of items from Kinvey and inspect and edit selected item properties.

55 lines (47 loc) 2.45 kB
import { ListViewEventData } from "nativescript-ui-listview"; import { Frame } from "tns-core-modules/ui/frame"; import { NavigatedData, Page } from "tns-core-modules/ui/page"; import { CarsListViewModel } from "./cars-list-view-model"; import { Car } from "./shared/car-model"; /* *********************************************************** * This is the master list code behind in the master-detail structure. * This code behind gets the data, passes it to the master view and displays it in a list. * It also handles the navigation to the details page for each item. *************************************************************/ /* *********************************************************** * Use the "onNavigatingTo" handler to initialize the page binding context. *************************************************************/ export function onNavigatingTo(args: NavigatedData): void { /* *********************************************************** * The "onNavigatingTo" event handler lets you detect if the user navigated with a back button. * Skipping the re-initialization on back navigation means the user will see the * page in the same data state that he left it in before navigating. *************************************************************/ if (args.isBackNavigation) { return; } const page = <Page>args.object; const viewModel = new CarsListViewModel(); page.bindingContext = viewModel; viewModel.load(); } /* *********************************************************** * Use the "itemTap" event handler of the <RadListView> to navigate to the * item details page. Retrieve a reference for the data item and pass it * to the item details page, so that it can identify which data item to display. * Learn more about navigating and passing context in this documentation article: * https://docs.nativescript.org/core-concepts/navigation#navigate-and-pass-context *************************************************************/ export function onCarItemTap(args: ListViewEventData): void { const tappedCarItem = <Car>args.view.bindingContext; Frame.topmost().navigate({ moduleName: "cars/car-detail-page/car-detail-page", context: tappedCarItem, animated: true, transition: { name: "slide", duration: 200, curve: "ease" } }); }