cttic-object-binder
v0.0.4
Published
Cttic Object Binder
Downloads
8
Readme
ObjectBinder
主要用来做前端 service 层和真实的 response data 间的解藕,以便使 ViewModel 的设计无须考虑后端逻辑
安装
npm install cttic-object-binder
使用
// .intl/的WifiErrorDevice文件
import { bind, Bind, BindObj, BindObjArray, BindObjDict } from 'cttic-object-binder'
// let test = bind<TestObj>(the_testObj_source, TestObj)
// let test_obj= {}
// let arc_obj = arcBind(test_obj,TestObj)
class TestObj {
@Bind('testA')
@arcBind('arc_testA')
private _testA: string = ''
@Bind('testB')
@arcBind('arc_testB')
private _testB: string = ''
@Bind('testC')
@arcBind('arc_testC')
private _testC: Number = 0
@Bind('tt')
@arcBind('arc_tt')
tt: string
get testA() {
return 'this is ' + this._testA
}
get testB() {
return 'this is ' + this._testB
}
get testC() {
return this._testC
}
@BindObj(TestObj, 'theObj')
testObj: TestObj
@BindObj(TestObj)
testObj2: TestObj
@BindObjArray(TestObj, 'testArray')
testObjArray: Array<TestObj>
@BindObjArray(TestObj)
testObjArray2: Array<TestObj>
@BindObjDict(TestObj, 'testDict')
testObjDict: Array<TestObj>
@BindObjDict(TestObj)
testObjDict2: Array<TestObj>
}
let the_testObj_source = {
testA: 'testAAA',
testB: 'testBBB',
testC: 100,
tt: 'test_tt',
theObj: {
testA: 'inner testAA',
testB: 'inner testBB',
testC: 200,
theObj: {
testA: 'inner testA',
testB: 'inner testB',
testC: 300
}
},
testObj2: {
testA: 'inner testAA',
testB: 'inner testBB',
testC: 200,
theObj: {
testA: 'inner testA',
testB: 'inner testB',
testC: 300
}
},
testArray: [
{
testA: 'testArray1A',
testB: 'testArray1B',
testC: 400,
theObj: {
testA: 'inner test1A',
testB: 'inner test1B',
testC: 500
}
},
{
testA: 'testArray2A',
testB: 'testArray2B',
testC: 400,
theObj: {
testA: 'inner test2A',
testB: 'inner test2B',
testC: 500
}
}
],
testObjArray2: [
{
testA: 'testArray1A',
testB: 'testArray1B',
testC: 400,
theObj: {
testA: 'inner test1A',
testB: 'inner test1B',
testC: 500
}
},
{
testA: 'testArray2A',
testB: 'testArray2B',
testC: 400,
theObj: {
testA: 'inner test2A',
testB: 'inner test2B',
testC: 500
}
}
],
testDict: {
xx: {
testA: 'testDictxxA',
testB: 'testDictxxB',
testC: 600,
theObj: {
testA: 'inner testxxA',
testB: 'inner testxxB',
testC: 700
}
},
yy: {
testA: 'testDictyyA',
testB: 'testDictyyB',
testC: 600,
theObj: {
testA: 'inner testyyA',
testB: 'inner testyyB',
testC: 700
}
}
},
testObjDict2: {
xx: {
testA: 'testDictxxA',
testB: 'testDictxxB',
testC: 600,
theObj: {
testA: 'inner testxxA',
testB: 'inner testxxB',
testC: 700
}
},
yy: {
testA: 'testDictyyA',
testB: 'testDictyyB',
testC: 600,
theObj: {
testA: 'inner testyyA',
testB: 'inner testyyB',
testC: 700
}
}
}
}
let test = bind<TestObj>(the_testObj_source, TestObj)