小编ond*_*rej的帖子

是否有可能在Elm中迭代联合类型?

我有一个类型的颜色联合,我想呈现给用户.是否可以迭代所有类型的联合值?

type Color = Red | Blue | Green | Black

colorToStirng color = 
    case color of
        Red -> "red"
        Blue -> "blue"
        Green -> "green"
        Black -> "black"

colorList = 
    ul
        []
        List.map colorListItem Color  -- <- this is the missing puzzle

colorListItem color = 
    li [class "color-" ++ (colorToString color) ] [ text (colorToString color) ]
Run Code Online (Sandbox Code Playgroud)

iteration elm

14
推荐指数
2
解决办法
1285
查看次数

以递归类型更新值 - elm lang

我有一个像树一样的文本节点结构,可能有另一个文本节点作为子节点,我需要更新其中的一个值.更新位于该树深处的文本节点(或者根本不在该树中)的最简单方法是什么?

在一个非不可变的语言中,我只需要更改该项的值,就是这样,但在像Elm这样的不可变语言中它非常棘手.

type alias Item =
  { id: String
  , text: String
  , children: ChildItems
  }

type ChildItems = ChildItems (List Item)

type alias Model =
  { rootItem: Item
  }

updateItem: Item -> Item -> Item
updateItem: rootItem item =
   -- TODO

...

update model =
  case msg of
    UpdateItem item updatedText ->
      let
        updatedItem = { item | text = updatedText }
      in
        ({ model | rootItem = (updateItem model.rootItem updatedItem) }, Cmd.none)
Run Code Online (Sandbox Code Playgroud)

这就是我想出来的

updateItem: Item.Item -> Item.Item -> …
Run Code Online (Sandbox Code Playgroud)

recursion elm

8
推荐指数
1
解决办法
851
查看次数

如何在Elm lang中批量执行多个Http请求(任务)

我想在将某些内容呈现到页面之前加载用户配置文件,但整个用户配置文件由多个HTTP请求加载的不同部分组成.

到目前为止,我按顺序加载用户配置文件(逐个)

type alias CompanyInfo = 
  { name: String
  , address: ...
  , phone: String
  , ...
  }

type alias UserProfile = 
  { userName: String
  , companyInfo: CompanyInfo
  , ... 
  }

Cmd.batch
  [ loadUserName userId LoadUserNameFail LoadUserNameSuccess
  , loadCompanyInfo userId LoadCompanyInfoFail LoadCompanyInfoSuccess
  ...
  ]
Run Code Online (Sandbox Code Playgroud)

但那不是很有效.有一种简单的方法如何执行一堆Http请求并返回一个完整的值?

像这样的东西

init = 
    (initialModel, loadUserProfile userId LoadUserProfileFail LoadUserProfileSuccess)

....
Run Code Online (Sandbox Code Playgroud)

http task elm

7
推荐指数
1
解决办法
1495
查看次数

如何在Elm lang中使用select(下拉)标签

我想使用以下代码在我的elm应用程序中呈现简单的下拉列表,但它没有按预期工作.我希望保持联合类型Role,并避免在可能的情况下使用字符串.

使用Elm下拉菜单的最佳方式是什么?我还没有找到任何例子.

import Html exposing (..)
import Html.App exposing (beginnerProgram)
import Html.Events exposing (..)
import Html.Attributes exposing (..)
import Json.Decode

main =
  beginnerProgram
    { model = initialModel
    , view = view
    , update = update
    }

initialModel =
  { role = None
  }

type Role
  = None
  | Admin
  | User

type alias Model = 
  { role: Role
  }

type Msg
  = SelectRole Role


update msg model =
  case msg of
    SelectRole role ->
      { model | role = role …
Run Code Online (Sandbox Code Playgroud)

html-select drop-down-menu elm dropdown

5
推荐指数
1
解决办法
3134
查看次数

SQL Server - 选择一列匹配但另一列不匹配的行

我需要为相同的列名选择数据类型不同的行。

这是我的数据集。预计突出显示的行会出现在结果中。

数据集

我尝试遵循 SQL 脚本,但它没有返回预期的结果

SELECT COLUMN_NAME, DATA_TYPE
FROM tablecolumns
WHERE COLUMN_NAME IN (
    SELECT COLUMN_NAME
    FROM tablecolumns
    WHERE COLUMN_NAME IN (
        SELECT COLUMN_NAME
        FROM tablecolumns
        GROUP BY DATA_TYPE, COLUMN_NAME
        HAVING count(*) = 1)
    GROUP BY COLUMN_NAME
    HAVING count(*) > 1)
ORDER BY COLUMN_NAME
Run Code Online (Sandbox Code Playgroud)

这是 SQL 小提琴的链接http://sqlfiddle.com/#!3/6e9665/1

sql-server

4
推荐指数
1
解决办法
1422
查看次数

将整数数组解码为Elm中的Date

我正在尝试转换这个json

{ "date": [2018, 2, 3] }
Run Code Online (Sandbox Code Playgroud)

进入这个模型

type alias MyModel = { date: Date }
Run Code Online (Sandbox Code Playgroud)

我知道如何将其解码为列表

decoder = 
   decode MyModel (field "date" (list int))
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将Decoders链接在一起.

elm

4
推荐指数
1
解决办法
101
查看次数

如何在榆树中呈现列表?

我很难在视图函数中呈现自定义类型列表.这是模型:

type alias Guid = String
type alias User = String

type alias TaxonomyCategory =
  { id : Guid
  , name: String
  , updatedAt: Date
  , updatedBy: User
  , terms: List TaxonomyTerm
  }

type TaxonomyTerm =
  TaxonomyTerm
    { id : Guid
    , name: String
    , terms: List TaxonomyTerm
    }
Run Code Online (Sandbox Code Playgroud)

我尝试了几种使用List.map函数的方法,但我总是遇到某种错误消息.

The 2nd argument to function `ul` is causing a mismatch.

120|       ul
121|         []
122|>        [ List.map renderTaxonomyTerm tc.terms ]

Function `ul` is expecting the 2nd argument to be:

    List …
Run Code Online (Sandbox Code Playgroud)

render list elm

3
推荐指数
1
解决办法
1399
查看次数