2016-04-26 10 views
0

thisガイドから次のコードは、ビューをレンダリング、その後、すべての可能なウィジェットの種類を保持するためにユニオン型を採用していますニレ - ユニオンタイプとモデル

type Widget 
    = ScatterPlot (List (Int, Int)) 
    | LogData (List String) 
    | TimePlot (List (Time, Int)) 

view : Widget -> Element 
view widget = 
    case widget of 
     ScatterPlot points -> 
      viewScatterPlot points 

     LogData logs -> 
      flow down (map viewLog logs) 

     TimePlot occurrences -> 
      viewTimePlot occurrences 

私はむしろ小学校の質問は:付き

Widgetタイプに関しては、ここで基礎となるモデルは何ですか?

アクション(たとえば、散布図ウィジェットを表示したいユーザー)の場合、更新する必要がある基本構造は何ですか?

答えて

1

ウィジェットは生データです。あなたは、その後、元からウィジェットの右のタイプのあなたのビュー機能でデータをロードした

update action model = 
    case action of 
    ScatterPoints pts ->  -- List (Int, Int) 
     ScatterPlot pts 
    LogPoints pts -> 
     LogData pts 
    ... 

その後、あなたには、いくつかの着信IOデータがあるとし

type alias Model = Widget 

を表示するデータを個別にモデル化する必要があります質問はデータの処理方法を知るでしょう

+0

2つまたは3つのウィジェットタイプの順列は、この例の範囲外ですか?私は、ユーザーがあるウィジェットのタイプから別のウィジェットのタイプに切り替える必要がある場合、更新する必要があるのだろうかと思っていました。 – category

+0

更新サイクルをトリガするユーザーイベントと、データを新しい形式に変換する関数が必要です –

関連する問題