如果我的模型如下:
type alias Application = { id : Int , term : Int , amount : Int }
type alias Model = { application : Application }
并且我正在尝试更新term
的值,我在update case语句中的输入上有onInput UpdateTerm
,如何更新此值?
到目前为止,我拥有UpdateTerm term ->;
,但是不确定如何只更新应用程序内部的term
值吗?
答案 0 :(得分:6)
记录字段更新在guide和reference documentation中都有描述。更新嵌套在另一个记录内的记录中的字段仅是一个接一个地做的事情。假设您有一个名为model
的绑定:
let
application =
model.application
updatedApplication =
{ application | term = term }
in
{ model | application = updatedApplication }
答案 1 :(得分:1)
为了获得更好的可读性,您可以制作如下功能:
update msg model =
case msg of
changeNestedProperty property ->
({ model | record= setNestedProperty property model.record } , Cmd.none)
setNestedProperty : String -> Record-> Record
setNestedProperty property record =
{ record | nestedProperty = property }