2016-01-24 22 views
1

我在Elm StartApp MUV框架的更新函数中有以下Action处理程序。Elm在更新函数中发送邮件到邮箱

signupAlertMailbox : Signal.Mailbox String 
signupAlertMailbox = 
    Signal.mailbox "" 

update : Action -> Model -> (Model, Effects Action) 
update action model = 
    case action of 
    Submit -> 
     let isInputValid = Dict.foldl (\fieldName fieldState validity -> if validity 
                   then (fieldState == IsOkay) 
                   else validity) 
                   True model.inputState 
      rnd = log "Input valid" isInputValid 
     -- in (model, Effects.none) 
     in if isInputValid 
      then (model, Signal.send signupAlertMailbox.address "Oh snap! Change a few things up and try submitting again." 
           |> Effects.task 
           |> Effects.map (always Submit)) 
      else (model, Signal.send signupAlertMailbox.address "Well done! All input correct!" 
           |> Effects.task 
           |> Effects.map (always Submit)) 

在提交行动,我可以看到在浏览器控制台日志消息,但是没有消息被发送到signupAlertMailbox。请帮我解决这个问题。

- 编辑

的的startApp接线,代码的要求,在下面的评论:

import StartApp exposing (start) 
import Time exposing (every, second) 

import Pages.Signup.Model 
import Pages.Signup.Update exposing (signupAlertMailbox) 
import Pages.Signup.View 

app = 
    start 
    { init = Pages.Signup.Model.init 
    , view = Pages.Signup.View.view 
    , update = Pages.Signup.Update.update 
    , inputs = [] 
    } 
+1

您可以发布您的代码接线,得到的startApp在sigupAlertMailbox邮箱的邮件?当'start'的返回值不会将'app.tasks'分配给端口 –

+0

时,通常会出现这种类型的问题我已经添加了将代码连接到StartApp。请协助我。谢谢。 –

+0

我把app.tasks移交给你提到的一个端口,它工作得很好。谢谢! :) –

回答

1

的原因是我说好的移交app.tasks到一个端口,通过提到它被执行乍得吉尔伯特@ chad-gilbert在上面的评论。谢谢!

我增加了下面的部分,我开始从更新功能

port tasks : Signal (Task.Task Never()) 
port tasks = 
    app.tasks 
相关问题