2016-10-26 9 views
1

私はSVGをレンダリングするためにElmコードを書いています(私はnoobです)。関連するビューコードが以下にリストされています(onClickメッセージは他のコードにあります)。私が現時点でやろうとしているのは、それがどのように動作するかを見るために、直線または直線を描くことだけです。このビューdefを含むelmコードを実行すると、svgグラフィックスは描画されません。 「ピクセルモデル」がラインケースを使用する場合、ボタンが描画され、モデルのテキスト文字列が描画されますが、線は描画されません。 「ピクセルモデル」がrectを使用する場合、ブラウザのタブ全体は空白/白です(ボタンやテキスト文字列はレンダリングされません)。私のコードに何か間違いがあるのですか、または私はエルムのバグに出くわしましたか? elm-lang.org/tryにコードを貼り付けてみました。また、Mac Installerの配布物を0.17使って、elm-reactorをlocalhost:8000で実行しました。SVGをElmコードで描画しない

import Html exposing (div, button, text, canvas, svg) 
import Html.App exposing (beginnerProgram) 
import Html.Events exposing (onClick) 
import Html.Attributes exposing (id, height, width, style) 
import Svg exposing (rect, line) 
import Svg.Attributes exposing (x, y, x1, y1, x2, y2, viewBox, fill, color, stroke, strokeWidth) 

<snip> 

view model = 
    div [] 
    [ button [ onClick Left ] [ text "Left"  ] 
    , button [ onClick Right ] [ text "Right" ] 
    , button [ onClick Down ] [ text "Down"  ] 
    , button [ onClick Up ] [ text "Up"  ] 
    , button [ onClick Out ] [ text "Zoom out" ] 
    , button [ onClick In ] [ text "Zoom in" ] 
    , button [ onClick Reset ] [ text "Reset" ] 
    , div [] [ text (toString model) ] 
    , svg [width 300, height 300, viewBox "0 0 300 300"] (pixels model) 
] 

pixels model = [rect [x "20", y "20", width 70, height 70, fill "rgb(255,0,0)" ][]] 
--pixels model = [line [x1 "20", y1 "20", x2 "70", y2 "70", stroke "red", strokeWidth "2"][]] 
+0

インスペクタでは何が表示されますか?あなたはSVGタグを見ることができますか? – Soviut

+0

エルム・インスペクタについて知りたいのですが?グーグルでその言葉を使って何かを見つけることは不可能です。 – Barry

+0

ブラウザのインス​​ペクタであるelmのインスペクタではありません。 – Soviut

答えて

1

Html.svgの代わりにSvg.svgを使用してください。

+0

svgのHtlm()からSvg()へのインポートを変更すると、両方のピクセルモデルスタイルがボタンまたはテキストなしの空白/すべての白を描画したという効果がありました。 – Barry

+2

私はあなたがsvg要素にSvg.Attributesを使用することを確認しなければならないと思う。 HtmlとSvgの属性が混在しているように見えます。 – Tosh

関連する問題