js-model v1.6.2
js-model
Data model for javascript
中文文档
Install
npm install
npm install js-model --saveModel
Column Define:
- String: "" || String
- Number: 0 || Number
- Date: Date
- Array: []
- Object: {}
Default Parameter
{
// when use dispose data, remove empty array.
removeEmptyArray: false,
// when use parse data, remove null value.
removeNull: false,
// remove null value from array.
removeNullFromArray: false,
// remove null value from object.
removeEmptyObject: true,
}Const
Model.S // money ten 十
Model.B // money hundred 百
Model.Q // money thousand 千
Model.W //money ten thousand 万
Model.SW // money one hundred thousand 十万
Model.BW // money million 百万
Model.QW // money ten million 千万
Model.Y // money billion 亿Methods
parse:
- Fill property: Creating a complete object data, allows you to get rid of the boredom of {{a&&a.b?a.b.c:''}}
- Data conversion: Data standardization conversion, when data is transferred from the background, the date is a timestamp, the amount is in unit, parse method is to help you convert time stamp to time string, the amount is converted in a certain unit, and also can help you to complete all the fields.
- Default value: define default value
dispose:
When you need to transfer the data to the background, convert the date into a timestamp, convert the amount to the amount in the unit, standardize the data format, and delete the empty data.
Example: the value modified by input is String, and is converted to digital format through dispose.
Basic
Basic.js
import Model from "js-model";
let Basic = new Model({
id: 0,
source: {
type: Date,
format: 'l' // use manba date format, "l": "YYYY-MM-DD",
},
description: "",
tags: [ 0 ],
companyId: "",
rate: {
type: Number,
default: 0.8 // use default value, only effective for String, Number, Date
},
salary: {
type: Number,
unit: Model.Q // money transfor, a unit of 1000
}
});
export default Basic;parse
Usage 1: fill property
import Basic from './Basic.js'
let basicValue = Basic.parse({});basicValue:
{
id: null,
source: null,
description: null,
tags: [],
companyId: null,
rate: 0.8, // use default value
salary: null
}Usage 2: conversion amount and date
import Basic from './Basic.js'
let basicValue = Basic.parse({
source: "2017-06-09T00:00:00+08:00",
salary: 10000,
rate: 0.1
});basicValue:
{
id: null,
source: "2017-06-09", //
description: null,
tags: [],
companyId: null,
rate: 0.1,
salary: 10 //10000 conversion to a thousand units
}dispose
Usage 1: remove null property
import Basic from './Basic.js'
let basicValue = Basic.dispose({
id: null,
source: "2017-06-09",
description: null,
tags: [],
companyId: null,
rate: "0.1",
salary: 10
});basicValue: Consistent with the values converted from parse
{
source: "2017-06-09T00:00:00+08:00",
salary: 10000,
rate: 0.1
}Advanced
// Basic.js
let Basic = new Model({
id: 0,
companyId: "",
rate: 0
});
export default Basic;
// Edu.js
let Edu = new Model({
id: 0,
major: "",
school: ""
});
export default Edu;
// User.js
import Edu from "./Edu";
import Basic from "./Basic";
let User = new Model({
basic: Basic,
edu: [Edu]
});
export default User;parse
import User from './User'
let user = User.parse({
basic:{
id:123123
},
edu:[{
id: 12
}],
})result:
{
basic: {
id: 123123,
companyId: null,
rate: null
},
edu: [{
id: 12,
school: null
major: null,
}]
}dispose
import User from './User'
let user = User.dispose({
basic:{
id:123123,
companyId: 123,
rate: null
},
edu:[{
id: 12,
school: "school"
major: null,
}],
})result:
{
basic: {
id:123123,
companyId: 123,
},
edu: [{
id: 12,
school: "school"
}]
}Extend
Single display and dispose
const info = new InfoModel({
salary: {
type: Number,
parse(data) {
return data.salary / 1000
},
dispose(data) {
return data.salary * 1000
}
},
});
info.parse({salary: 10000})
// {salary: 10}
info.parse({salary: 20})
// {salary: 20000}Extend Model
class InfoModel extends Model {
parse(data) {
let b = super.parse(data);
if(b.imgUrls.type.length == 0) {
b.imgUrls.type.push('http://*****')
}
return b;
}
dispose(data, param) {
return super.dispose(data, param)
}
}
const info = new InfoModel({
imgUrls: {
type: ['']
},
});
info.parse({})result:
{
imgUrls: {
type: ['http://*****']
},
}Config
manba-config.js The default is the ISO date format of the current time zone, for example: 2016-04-19T00:00:00+08:00
import Model from 'js-model';
// Redefining the format of the date conversion
Model.config({
disposeDateFormat(date) {
// change to use timestamp
return manba(date).time();
}
})Recommend
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago