Hi,
that would be so much easier to help you if you would have prepared an
executable using runelm.io or ellie-app.com.

Taking a quick look at your update function I would suggest:
    InputEmail email ->
        { model | email = StringField email (validateEmail email) }
        ! []

Regards,
Witold Szczerba

On Sat, Feb 25, 2017 at 10:08 PM, Michael Johnson <
[email protected]> wrote:

> Hello, new to elm and experimenting around with it and I'm not sure how to
> update a sub model. I have not run across an example of this form yet.
> Given the following:
>
> -- MODEL
>
>
> type alias StringField =
>   {
>     value : String
>     , errors : List String
>   }
>
>
> ------> how to update value and errors fields for email and password in
> this model
> type alias Model =
>   { email : StringField
>     , password : StringField
>   }
>
>
> initValue : String
> initValue =  ""
>
>
> initErrors : List String
> initErrors = []
>
>
> initEmail = StringField initValue initErrors
> initPassword = StringField initValue initErrors
>
>
> init : (Model, Cmd Msg)
> init =
>   (Model initEmail initPassword, Cmd.none)
>
>
> -- UPDATE
>
>
> type Msg
>   = InputEmail String
>   | InputPassword String
>   | SubmitForm
>
> update : Msg -> Model -> (Model, Cmd Msg)
> update msg model =
>   case msg of
>     InputEmail email ->
>       let
>         emailModel = model.email
>       in
>
> ---->>
>         { emailModel | value = email, errors = validateEmail email }
>         ( { model | email = emailModel }, Cmd.none)
>
>
>     InputPassword password ->
>       let
>         passwordModel = model.password
>       in
>
> ---->>
>         { passwordModel | value = password, errors = validatePassword
> password }
>         ( { model | password = passwordModel }, Cmd.none )
>
>
>     SubmitForm ->
>       ( model, Cmd.none)
>
> validateEmail : String -> List String
> validateEmail model =
> --put validation here
>   []
>
>
> validatePassword : String -> List String
> validatePassword model =
> --put validation here
>   []
>
> I have worked through several iterations and got to this point but it
> seems like there should be an easier and more direct way. Plus this is
> still producing the following errors:
>
> -- TYPE MISMATCH -----------------------------------------------
> kitchensink.elm
>
>
> You are giving an argument to something that is not a function!
>
>
> 63|         { passwordModel | value = password, errors = validatePassword
> password }
>
> 64|>        ( { model | password = passwordModel }, Cmd.none )
>
>
> Maybe you forgot some parentheses? Or a comma?
>
>
> -- TYPE MISMATCH -----------------------------------------------
> kitchensink.elm
>
>
> You are giving an argument to something that is not a function!
>
>
> 56|         { emailModel | value = email, errors = validateEmail email }
>
> 57|>        ( { model | email = emailModel }, Cmd.none)
>
>
> Maybe you forgot some parentheses? Or a comma?
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to