2016-01-23 155 views
4

更新的內部記錄我有這個模型如何在榆樹

type alias Model = 
    { exampleId : Int 
    , groupOfExamples : GroupExamples 
    } 

type alias GroupExamples = 
    { groupId : Int 
    , results : List String 
    } 

在我更新的功能,如果我想更新exampleId會是這樣:

{ model | exampleId = updatedValue } 

但如果我需要進行更新,例如,僅更新GroupExamples中的結果值?

+0

HTTPS ://github.com/evancz/focus - 當你有嵌套數據結構 – lifebalance

回答

11

做的語言沒有任何額外費用,唯一的辦法就是解構象外記錄:

let 
    examples = model.groupOfExamples 
    newExamples = { examples | results = [ "whatever" ] } 
in 
    { model | groupOfExamples = newExamples } 

也有focus package這將允許您:

set (groupOfExamples => results) [ "whatever" ] model 
+0

焦點正是我所需要的,謝謝 – Mattos