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
text/typescript
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.
*************************************************************/
({
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"
}
});
}
}