我有一个类型的颜色联合,我想呈现给用户.是否可以迭代所有类型的联合值?
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) 我有一个像树一样的文本节点结构,可能有另一个文本节点作为子节点,我需要更新其中的一个值.更新位于该树深处的文本节点(或者根本不在该树中)的最简单方法是什么?
在一个非不可变的语言中,我只需要更改该项的值,就是这样,但在像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) 我想在将某些内容呈现到页面之前加载用户配置文件,但整个用户配置文件由多个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) 我想使用以下代码在我的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) 我需要为相同的列名选择数据类型不同的行。
这是我的数据集。预计突出显示的行会出现在结果中。

我尝试遵循 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
我正在尝试转换这个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链接在一起.
我很难在视图函数中呈现自定义类型列表.这是模型:
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) elm ×6
dropdown ×1
html-select ×1
http ×1
iteration ×1
list ×1
recursion ×1
render ×1
sql-server ×1
task ×1