group 分组
2025/4/16小于 1 分钟
group 分组
说明
声明当前的 column 属于哪个组,最后通过getChangedData、getSerializableObject方法来获取对应分组的内容
案例
getChangedData
模型
class Test extends ModelBase {
@Column({ group: "group1" })
public a?: string
@Column({ group: "group2" })
public b?: string
@Column({ group: ["group1", "group2"] })
public c?: string
@Column()
public empty?: string
}
实例初始化
const test = new Test({ a: "1", b: "1", c: "1" })
修改实例
// 修改a,c属性,添加empty属性,b属性不变
test.a = "2"
test.c = "2"
test.empty = "2"
打印日志
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getChangedData({ group: "group1" }))
// { a: "2", c: "2", empty: "2" }
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getChangedData({ excludeGroup: "group1" }))
// { empty: "2" }
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getChangedData())
// { a: "2", c: "2", empty: "2" }
getSerializableObject
模型
class Test extends ModelBase {
@Column({ group: "group1" })
public a?: string
@Column({ group: "group2" })
public b?: string
@Column({ group: ["group1", "group2"] })
public c?: string
@Column()
public empty?: string
}
实例初始化
const test = new Test({
a: "1",
b: "1",
c: "1",
empty: "1",
})
打印日志
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getSerializableObject({ group: "group1" }))
// { a: "1", c: "1", empty: "1" }
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getSerializableObject({ excludeGroup: "group1" }))
// { b: "1", empty: "1" }
// 获得column中被标记为“group1”的属性与没有做任何group标记的属性的并集(变化的数据)
console.log(test.getSerializableObject())
// { a: "1", b: "1", c: "1", empty: "1" }
注意事项
- getSerializableObject
- ({ group: 'group1' }) 获得 column 中被标记为“group1”的属性与没有做任何 group 标记的属性的并集
- ({ excludeGroup: 'group1' }) 获得 column 中没有被标记为“group1”的所有属性
- () 获取所有属性
- getChangedData
- ({ group: 'group1' }) 获得 column 中被标记为“group1”的属性与没有做任何 group 标记的属性的并集(变化的数据)
- ({ excludeGroup: 'group1' }) 获得 column 中没有被标记为“group1”的所有属性(变化的数据)
- () 获取所有属性(变化的数据)