问题标签 [halogen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
569 浏览

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

在我的自定义 Halogen/Purescript 项目中,我遵循AJAX 示例中的模式,将我的操作分为 pure Inputs 和 effectful Requests。

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

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

前:

后:

(此处提供完整差异)

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

在这一点上,我是否需要调整 UI 函数的类型签名或者我preventDefault以错误的方式应用修饰符有点迷茫。

0 投票
1 回答
251 浏览

monad-transformers - 用于卤素元件的 Monad 变压器

我试图弄清楚我可以通过哪种方式在卤素组件包含的单子上使用变压器。

我想通过带有 Config 记录的 ReaderT 扩展介绍示例,在这种情况下,可以使用它来使字符串可配置,但是在将它们放在一起时我迷失了。

假设我们这样定义我们的 Config:

然后我们的ui函数将从

forall m eff. (Monad m) => Component m Input Input

forall m (Monad m) => Component (ReaderT Config m) Input Input.

为了评估我们的 main 函数,我们将使用hoistComponent它来将其转换回以前的形式:

到目前为止,我不确定这是否有意义,但假装它确实如此,下一步就是我正在努力的地方。在理想的世界中,我的 ui 函数将允许我执行以下操作:

但我最终遇到了一长串统一错误,不知道从哪里开始。显然,内部使用ask不能像这样工作,因为我需要将它提升到 HTML 上下文中,但我什至不确定这是否可能。

如果有人可以指导我了解这里的类型并告诉我这种通用方法是否明智,那就太好了。GitHub 上有一个完整的(非编译)示例。I18n 应仅作为此处阅读器的简单示例使用。

0 投票
1 回答
462 浏览

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

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

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

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

0 投票
2 回答
779 浏览

purescript - 如何组件化 purescript-halogen 应用程序

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

例如,我想使用卤素创建一个注册表单。它看起来像下面这样:

同样,我有一个LoginForm模块可以处理将用户登录到应用程序。

我想知道如何组织我的源代码,构建我的源代码,并从 Javascript 调用我的 Purescript 代码

目前,我的源代码组织如下:

但是,由于我没有Main.purs,我无法执行以下任何操作来构建我的源代码:

能够将我的纯脚本代码构建到逻辑 javascript 文件中会很好。例如,src/LoginForm.purs可以构建为site/loginForm.js,并且src/RegistrationForm.purs可以构建为site/registrationForm.js

然后,我可以根据需要在我的实际 html 页面中包含loginForm.js和。registrationForm.js

0 投票
1 回答
416 浏览

purescript - 使用 purescript-halogen(带纸浆)

遵循PureScript by Example,我使用纸浆来安装包。

卤素需要virtual-dom额外的依赖。从文档和示例包中,在我看来,添加它涉及到一堆我以前没有使用过的构建工具(gulpwebpackbower等)。我下载了示例并尝试运行它们,npm install & npm run example但出现unknwon module错误。

所以,我想知道一种将卤素安装到新pulp项目中的最小可行方法(希望这不需要我深入研究大量构建工具,或者至少对于小型项目来说不是)。

0 投票
1 回答
435 浏览

purescript - 在卤素的 eval 中从 Eff 发送动作?

我正在尝试限制 purescript-halogen 中的搜索字段。到目前为止我所拥有的:

我想过将UI驱动程序保存在全局中Var并从那里发送新的操作,但这对我来说似乎很 hacky。

或者也许还有另一种方法可以做到这一点?

0 投票
1 回答
80 浏览

purescript - Purescript卤素组件功能:传递间隔参数而不是记录?

我在 PureScript 0.8.2 上。在 PureScript Halogen 中,该component函数具有签名:

在哪里

所以component期待一个记录。但在卤素模板项目中,component调用如下:

我在看两个不同的component功能吗?或者由空格分隔的参数是否被转换为记录?所以我尝试了以下方法psci

0 投票
1 回答
1236 浏览

websocket - PureScript Halogen 和 websockets

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

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

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

在此先感谢您提供正确方向的任何指示!

0 投票
1 回答
273 浏览

purescript - Purescript Halogen:我可以请求同时也是父组件的子组件的状态吗?

如果我有一个祖父母,一个子组件和一个孙子组件,祖父母可以请求孩子的状态吗?我试过像这里一样使用“请求”,但是当你请求一个也有自己的孩子的孩子的状态时,类型不匹配。当我请求没有孩子的孩子的状态时,指南中的示例可以正常工作。

错误是:

0 投票
1 回答
507 浏览

html - Purescript 卤素输入元素和自定义自动更正属性

我正在尝试在 iOS 上禁用 Safari 输入中的自动更正。purescript 卤素中目前没有“自动更正”属性,所以我创建了一个,并修改了索引输入元素记录以使用它。

我的问题是,在呈现输入元素时,新属性实际上并没有添加到 dom 中。我还创建了一个“自动大写”属性,该属性在 chrome 中呈现时被正确添加到 dom,但不是 safari,所以我知道我创建属性的方式可以工作(尽管我不确定为什么这两个属性都不能在 safari 中工作)。我可以使用 purescript-jquery 添加“自动更正”属性,并且在 safari 中一切正常,但是有没有更自然的方法来获取 DOM 中的属性?

这是对特定于 safari 的“自动更正”属性的引用https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input

我还使用代码https://github.com/sportanova/purescript-input-example/tree/master创建了一个 github 存储库

我正在使用 purescript v0.8.5 和卤素 v0.8