UNPKG

tns-template-master-detail-progress-ng

Version:

Master-detail interface to display tables from a Progress backend and inspect and edit selected records.

72 lines (63 loc) 3.1 kB
import { Component, OnInit } from "@angular/core"; import { PageRoute, RouterExtensions } from "nativescript-angular/router"; import { Customer } from "../shared/customer.model"; import { CustomerService } from "../shared/customer.service"; /* *********************************************************** * This is the item details component in the master-detail structure. * This component retrieves the passed parameter from the master list component, * finds the data item by this parameter and displays the detailed data item information. *************************************************************/ @Component({ selector: "CustomerDetail", moduleId: module.id, templateUrl: "./customer-detail.component.html" }) export class CustomerDetailComponent implements OnInit { private _customer: Customer; constructor( private _customerService: CustomerService, private _pageRoute: PageRoute, private _routerExtensions: RouterExtensions ) { } /* *********************************************************** * Use the "ngOnInit" handler to get the data item id parameter passed through navigation. * Get the data item details from the data service using this id and assign it to the * private property that holds it inside the component. *************************************************************/ ngOnInit(): void { /* *********************************************************** * Learn more about how to get navigation parameters in this documentation article: * http://docs.nativescript.org/angular/core-concepts/angular-navigation.html#passing-parameter *************************************************************/ this._pageRoute.activatedRoute .switchMap((activatedRoute) => activatedRoute.params) .forEach((params) => { const customerId = params.id; this._customer = this._customerService.getCustomerById(customerId); }); } get customer(): Customer { return this._customer; } /* *********************************************************** * The back button is essential for a master-detail feature. *************************************************************/ onBackButtonTap(): void { this._routerExtensions.backToPreviousPage(); } /* *********************************************************** * The master-detail template comes with an example of an item edit page. * Check out the edit page in the /customers/customer-detail-edit folder. *************************************************************/ onEditButtonTap(): void { this._routerExtensions.navigate(["/customers/customer-detail-edit", this._customer._id, false], { animated: true, transition: { name: "slideTop", duration: 200, curve: "ease" } }); } }