作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有课
data class Patient(
val birthNumber: String ,
val firstName: String ,
val lastName: String ,
val birthDate: LocalDate ,
val healthInsurance: InsuranceCompany ,
val hospitalizations : List<Hospitalization> = emptyList()
)
class PatientModel : ItemViewModel<Patient>() {
val birthNumber = bind(Patient::birthNumber)
val firstName = bind(Patient::firstName)
val lastName = bind(Patient::lastName)
val birthDate = bind(Patient::birthDate)
val healthInsurance = bind(Patient::healthInsurance)
val hospitalizations = bind(Patient::hospitalizations)
}
var model = PatientModel()
val controller: AddPatientController by inject()
override val root = VBox()
init {
title = "Pridat pacienta"
with(root) {
goHome()
form {
fieldset("Personal Information") {
field("First name") {
textfield().bind(model.firstName)
}
field("Last Name") {
textfield().bind(model.lastName)
}
field("birthNumber") {
textfield().bind(model.birthNumber)
}
field("InsuranceCompany") {
combobox<InsuranceCompany> {
items = controller.insuranceComp
}.bind(model.healthInsurance)
}
field("birthDate") {
datepicker().bind(model.birthDate)
}
model.item
它是空的。
data class Patient
目的 ?不是 View 模型之一。谢谢
最佳答案
您需要设置 item
进入ViewModel
.要给它一个新实例,请执行 model.item = Patient(...)
.不过,您不一定需要事先执行此操作。
患者实例也可以传递给 ViewModel
super 构造函数自动设置item
属性:
class PatientModel(patient: Patient) : ItemViewModel<Patient>(patient)
Patient
类是不可变的,ViewModel 无法自动将数据写回其中。要克服这个问题,请覆盖
onCommit
在
ViewModel
并为
item
分配一个新值属性,基于当时 ViewModel 属性中的值。
override fun onCommit() {
item = Patient(birthNumber.value, ...)
}
关于kotlin - ItemViewModel 项目为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47113124/
我有一个域类 class UserItem(var simpleItem: Item, var id: String, var status: String, var price: Int) {
我有课 data class Patient( val birthNumber: String , val firstName: String , val lastName: S
我正在尝试通过注入(inject)添加模型以查看 val model = PersonModel by inject() 但错误: 'PersonModel' does not have a comp
我有课User和 ItemViewModel为了它。 class User(name: String, type: Int, isAdmin: Boolean) { var name by p
我是一名优秀的程序员,十分优秀!