tns-template-master-detail-kinvey-ts
Version:
Master-detail interface to display collection of items from Kinvey and inspect and edit selected item properties.
73 lines (56 loc) • 2.02 kB
text/typescript
import { Observable } from "tns-core-modules/data/observable";
import { ObservableProperty } from "../../shared/observable-property-decorator";
export class Car extends Observable {
id: string;
imageStoragePath: string;
seats: string;
luggage: number;
class: string;
hasAC: boolean;
doors: number;
price: number;
transmission: string;
isModelValid: boolean;
private _name: string;
private _imageUrl: string;
constructor(options: any) {
super();
this._name = options.name;
this._imageUrl = options.imageUrl;
this.id = options.id;
this.seats = options.seats;
this.luggage = Number(options.luggage);
this.class = options.class;
this.hasAC = options.hasAC;
this.doors = Number(options.doors);
this.price = Number(options.price);
this.transmission = options.transmission;
this.imageStoragePath = options.imageStoragePath;
this.updateDependentProperties();
}
get name(): string {
return this._name;
}
set name(value: string) {
if (this._name === value) {
return;
}
this._name = value;
this.notifyPropertyChange("name", value);
this.updateDependentProperties();
}
get imageUrl(): string {
return this._imageUrl;
}
set imageUrl(value: string) {
if (this._imageUrl === value) {
return;
}
this._imageUrl = value;
this.notifyPropertyChange("imageUrl", value);
this.updateDependentProperties();
}
private updateDependentProperties(): void {
this.isModelValid = !!this._name && !!this._imageUrl;
}
}