UIModel - adarshpastakia/aurelia-ui-framework GitHub Wiki
-
serialize(Object)
: Return simple JSON object, child properties with Arrays will be converted to comma separated strings
import {UIModel} from 'aurelia-ui-framework';
import {ValidationRules} from "aurelia-validation";
export class MyModel extends UIModel {
firstName:string = '';
lastName:string = '';
age:number = 0;
email:string = '';
allowCalls:boolean = false;
mobilePhone:string = '';
constructor() {
super();
ValidationRules
.ensure((m:MyModel)=>m.firstName)
.required()
.maxLength(49)
.ensure(m=>m.lastName)
.required()
.maxLength(49)
.ensure(m=>m.email)
.required()
.email()
.ensure(m=>m.age)
.required()
.satisfiesRule('number', 18, 99)
.withMessage('Must be over 18')
.ensure(m=>m.mobilePhone)
.required()
.when(m => m.allowCalls)
.satisfiesRule('phone')
.on(this);
this.observe('age', e=>this.handler(e));
}
post() {
return this.httpClient.post('url', this.serialize());
}
}
export class MyView {
model;
constructor() {
this.model = new MyModel();
}
}
-
logger
: Aurelia Logger instance -
httpClient
: UIHttpService instance
-
Override the following method for individual models
get()
post()
put()
delete()
-
deserialize(POJO)
-
serialize():POJO
-
isDirty():boolean
-
saveChanges()
-
discardChanges()
-
addObserver(UIEvent.observe(...))
: Add to observer collection which will be disposed when disposing the model -
observe(property, callback)
: Add an observer for a property -
dispose()