2016-07-27 17 views
6

私はdisplayErrorsのように解釈されるものを返すことができますどのように、私の見解ではので、私はエラーがないことをイベントでElm-Htmlに空のHtmlノードを生成する方法はありますか?

div [] [ displayErrors model ] 

のようなものを持って、エラーメッセージを表示する機能を書いています空のHTMLノード?

答えて

1

は、私には完全に正常に見えます。

しかし、実際にノードを持たない場合は、displayErrorsMaybe (Html msg)に戻すことができます。

その後、次のようにコードを変更することができます。displayErrorsNothingを返すとき

import Maybe.Extra exposing (maybeToList) 

div [] (displayErrors model |> maybeToList) 

divは本当に空になります。

注:次のコマンドを使用してMaybe.Extraモジュールをインストールすることができます。

elm package install elm-community/maybe-extra 
+0

ええ、これは素晴らしい解決策です。唯一の問題は、これをリストで使用している場合です。したがって、例えば:div [] [stuff、(displayErrors model |> maybeToList)]、これは実際にはうまくいかないでしょう。私は、既存のHtml関数シグネチャでこれを解決する本当に良い方法はないと思います。たぶん、リターンシグネチャは、HTMLメッセージの代わりに(Html Msg)とする必要があります。 – jz87

+1

その場合、リストを連結することができます: 'div []([stuff] ++(displayErrors model |> maybeToList))' –

+0

@ダウン投票者: –

10

あなたは空の文字列でHtml.textノードを使用することができます。robertjloobyの答え@

emptyNode = Html.text "" 
+2

が、これは離れて最適化されますでしょうか?私は、意図しない結果につながるCSSルールを引き起こす可能性があるため、これらのファントムノードの使用について懸念しています。 – jz87

+0

@ jz87は何も表示されないように見えます – rpearce

関連する問題