标签: halogen

PureScript卤素和websockets

我正在尝试purescript-halogen与websockets结合使用,但经过多次尝试后,我无法让它们一起工作.

我已经在Thermite和websockets上看到了这个问题以及Phil关于这个Driver功能的答案.卤素也有一个Driver功能,但我需要运行Driver具有Aff效果的功能,同时purescript-websockets-simple使用Eff效果.

我不知道如何将websocket包的同步回调转换为在Affmonad中运行的异步代码.我需要使用AVar吗?我需要purescript-coroutines-aff吗?如果是这样,我如何将这些部件连接在一起?

提前感谢任何正确方向的指针!

websocket purescript halogen

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

如何组成purescript-halogen应用

我想用Purescript的Halogen编写我的前端的特定组件.

例如,我想使用Halogen创建一个注册表.它看起来如下所示:

module RegistrationForm where

import Prelude

...

-- | The state of the application
newtype State = State { email :: String, password :: String }

derive instance genericState :: Generic State
instance showState :: Show State where show = gShow
instance eqState :: Eq State where eq = gEq

initialState :: State
initialState = State { email: "", password: "" }

-- | Inputs to the state machine
data Input a = FormSubmit a
             | UpdateEmail String a …
Run Code Online (Sandbox Code Playgroud)

purescript halogen

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

PureScript Halogen 中的滚动操作

我正在使用 purescript-halogen,并且我想在捕获子组件的消息时滚动到 div 底部。然而,卤素中似乎不存在滚动动作控制。那么,如何 滚动到 div 底部呢?

我认为的一种解决方案是,当事件捕获时,从 Main 调用其他进程,而不是 Halogen。我不确定这个解决方案还不错。

purescript halogen

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

如何在purescript-halogen中组合有效的事件处理程序和自定义EventUpdates?

在我自定义的Halogen/Purescript项目中,我遵循AJAX示例中的模式,在这里我将我的行为分解为纯粹Input的和有效Request的.

我想更改我的事件处理程序以使用该preventDefault行为,但不明白这会对UI函数的类型产生什么影响.

我通过以下方式更改事件处理程序,对AJAX示例进行了相同的更改:

之前:

H.button [ A.classes [B.btn, B.btnPrimary]
         , A.disabled busy
         , A.onclick (\_ -> pure (handler code))
         ] [ H.text "Compile" ]
Run Code Online (Sandbox Code Playgroud)

后:

H.a [ A.classes [B.btn, B.btnPrimary]
    , A.href "#compile"
    , A.disabled busy
    , A.onclick (\_ -> E.preventDefault $> pure (handler code))
    ] [ H.text "Compile" ]
Run Code Online (Sandbox Code Playgroud)

(完全差异在这里可用)

我最终得到这种类型的错误:

Cannot unify type
    Example.Ajax.Input
    with type
        Halogen.HTML.Events.Monad.Event Halogen.HalogenEffects<(http ::
        Example.Ajax.HTTP | u32519)> Example.Ajax.Input
Run Code Online (Sandbox Code Playgroud)

此时,我有点迷失是否需要调整UI函数的类型签名或者我preventDefault以错误的方式应用修饰符.

purescript halogen

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

在 purescript-halogen 中创建后自动聚焦输入元素

我正在使用 purescript-halogen 来构建一个类似电子表格的表格(类似于Handsontable)。如果您双击一个单元格,一个 html 输入元素将呈现为相应表格单元格的子元素(并且不会为所有其他单元格呈现此类元素)。

这对卤素非常有效,只是我不知道如何自动将焦点设置到新创建的输入元素。

我尝试了该autofocus属性,但这仅适用于双击的第一个单元格。JavaScript 的focus()方法是在新元素上调用该方法,但是我不知道在卤素中更新 DOM 后如何调用它。有任何想法吗?

purescript halogen

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

在 Purescript 中按 ID 选择元素

是否有一个函数purescript-halogen可以通过它来选择一个元素id,或者我是否需要自定义它的角色(这对我来说似乎很奇怪)。

我读通过追求上的文档,我看到一个selectElement在功能上Util,但没有在任何地方我看到的东西,让我的选择id

我可以使用getElementById :: ElementId -> NonElementParentNode -> Eff () (Nullable Element)来获取Element,但我不知道如何将其Element变成HTMLElement.

Pursuit 中的类型搜索功能也缺乏,所以我为这个幼稚的问题道歉。

purescript halogen

2
推荐指数
1
解决办法
800
查看次数

标签 统计

halogen ×6

purescript ×6

websocket ×1