首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Purescript:卤素HTML DSL只渲染"id“标签

Purescript:卤素HTML DSL只渲染"id“标签
EN

Stack Overflow用户
提问于 2017-01-17 11:21:58
回答 1查看 250关注 0票数 2

我使用的是purescript-halogen v0.12.0,但我搞不懂为什么只呈现id标记。

即使是像div这样被认为得到很好支持的元素也会发生这种情况。

示例:

render = div [ id_ "some-id", name "some-name ] []

将创建一个div,但仅具有id属性。对于Halogen.HTMLHalogen.HTML.Indexed中的元素,都会发生这种情况。

任何正确方向的帮助都将不胜感激。

=============================================================

使用以下命令重现该问题。

代码语言:javascript
复制
pulp init
bower i purescript-halogen
npm i virtual-dom

============

代码语言:javascript
复制
module Main where

import Prelude
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)

import Halogen as H
import Halogen.HTML (div, text)
import Halogen.HTML.Properties (id_, name, pixels, height, width)
import Halogen.Util (awaitBody, runHalogenAff)

type State = Int
data Query a = Toggle a

ui :: forall g. (Functor g) => H.Component State Query g
ui = H.component { render, eval }
  where
    render :: State -> H.ComponentHTML Query
    render st = div [ id_ "my-id", name "my-name", height (pixels 3), width (pixels 4) ] [ text "here!" ]

    eval :: Query ~> H.ComponentDSL State Query g
    eval (Toggle next) = pure next

main :: forall e. Eff (H.HalogenEffects e) Unit
main = runHalogenAff $ do
  body <- awaitBody
  H.runUI ui 0 body
EN

回答 1

Stack Overflow用户

发布于 2017-01-18 19:47:46

这是因为name不是应用于divvalid propertywidthheight也不是-如果您使用Indexed元素和属性,您将在尝试设置widthheight时看到类型错误。尝试更改inputdiv,您将看到应用的属性是正确的。

但是,索引元素确实允许在div上设置name,这是一个错误。

这些属性没有显示在呈现的HTML中的原因是它们被设置为属性而不是属性。属性必须存在于元素的javascript接口中,否则它们将被忽略。与其说这是卤素的东西,不如说是DOM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41688580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档