问题标签 [om]

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 回答
388 浏览

clojure - 如何将 Hickory 与 Clojurescript (OM/Reagent) 一起使用?

在我的 Reagent 项目中,我使用 Hickory 解析 HTML 并呈现一个 Hiccup 页面。打嗝被渲染。但是当我更改页面(!reset my view atom)时,React.js 变得疯狂,因为 Hickory 生成了:

[:div (as-hiccup (parse "<h1>HELLO WORLD!</h1>"))]

=> ([:html {} [:head {}] [:body {} [:h1 {} HELLO WORLD!]]])

如您所见,它生成<html> <head> <body>了我认为导致 Reactjs 崩溃的标签,因为我的视图已经有了这些标签。理想情况下,我希望它只生成[:h1 {} HELLO WORLD!]

0 投票
2 回答
310 浏览

javascript - 当我刷新我的试剂页面时,Firebase 数据不可用,因此出现异常

我有一个试剂,可以在单击后退和前进按钮时在所有页面上工作。但是,当页面被刷新时,它会引发异常。

我的应用从 Firebase 和sets一个原子中获取数据。然后随着 UI 的渲染。视图从 atom 中获取数据并呈现 UI。

但是当我刷新时,似乎页面是在我的 Atom 被 Firebase 填充之前呈现的,这会导致异常,因为数据尚不可用。

注意:当我只刷新页面(println clicked-job uid)而不渲染标记时,println运行两次,第一次返回nil,第二次返回数据。

任何有助于正确刷新页面的帮助!

0 投票
1 回答
1764 浏览

javascript - 如何在 Clojurescript 中的 Date 对象上调用 .toDateString()

我正在尝试在 Clojurescript 中获取 DateString:new Date(1420971497471).toDateString();

我遇到了麻烦,因为(js/Date 1420971497471)返回一个字符串,所以我不能调用.toDateString().

这是我的 Clojurescript 代码:

0 投票
2 回答
2233 浏览

clojurescript - 有没有办法在不使用匿名函数的情况下在 Om 中创建 onClick 处理程序?

我想为 Om 组件创建一个单击处理函数。我发现的文档和堆栈溢出示例总是像这样声明匿名函数

我认为在组件内的 jsx/模板区域之外声明 click 函数会更干净,就像在常规 React 中通常所做的那样。有没有办法在组件内的 Om 中做到这一点?我试过这个,但它不起作用,因为 onClick 未定义:

如果可能的话,我想避免在组件之外定义一个单独的函数。

0 投票
2 回答
268 浏览

reactjs - 使用 Om 有条件地将类添加到元素

在 Om 中,有没有办法根据主应用程序原子中的某个值向元素添加类?

以以下元素为例:

如果我以某种方式在真假之间切换值:some-key,则不会添加或删除该类。on page load的值:some-key决定是否添加该类。

我正在使用这个想法根据我的应用程序状态hide中的键值有条件地显示/隐藏(使用 Twitter Bootstrap 的类)菜单选项::access

0 投票
1 回答
1426 浏览

clojurescript - 在 Om 应用程序中正确操作状态时遇到问题

我在操作 Om 应用程序中的状态时遇到问题。具体来说,我不知道如何从列表中删除项目。

这是我愚蠢的证明。这是一个被破坏的简化应用程序。https://gist.github.com/rerb/29d10959e71ba1e31e8e

显示两个按钮。按下时,它们应自行移除。

删除第一项后,尝试删除第二项时出现此错误:

如果我先删除第二个,则在尝试删除第一个时会出现此错误:

我错过了什么简单的事情?我是爱因斯特伦。

0 投票
1 回答
1251 浏览

javascript - 如何在 Clojurescript 中循环一个 JavaScript 对象并将每个对象推入一个数组

如何将这个函数(转换为 Clojurescript)转换为接受 JavaScript 对象并将其内容推送到数组中。

0 投票
1 回答
144 浏览

clojure - 使用 defmulti 和 defn 作为 om/build-all 的函数有什么区别?

  • 嗯“0.8.0”

我最近开始通过使用om 存储库的示例代码来学习om 。现在,我正在检查多个示例,并且可以理解该程序的行为。

在我点击“+”按钮后,

  • 首先,打印“偶数(或奇数)小部件卸载”。
  • 接下来,打印“奇数(或偶数)小部件安装”。

但是当我添加以下代码时
(只需将奇偶小部件defmulti代码更改为defn代码)

并尝试使用此功能而不是test-widget,结果,没有打印消息...

那么在这种情况下,defmulti 和 defn 有什么区别呢?这是错误还是正确的行为?

提前致谢。

0 投票
2 回答
305 浏览

clojurescript - 在 Om 中传递 App Atom 与 Ref-Cursors

使用 Om,似乎将应用程序状态的相关部分传递给子组件实际上与不传递任何应用程序状态但使用引用游标相同。引用游标将应用程序状态的各个部分沿链向下传递的用例是什么?

我已经阅读了 Om github 存储库上的所有三个教程和概念概述,但我真的找不到这个问题的答案。似乎一个人可以使用其中一个或另一个来完成同样的事情(一个要么定义一个组件(defn blah [_ owner] ...)并使用 ref 游标,要么定义一个组件(defn blah [relevent-state owner] ...)

有人可以澄清我何时想在组件内使用 ref 光标,而不是简单地将应用程序状态的一部分传递给该组件吗?

0 投票
1 回答
799 浏览

web-applications - ClojureScript & Om:编写 document.hash 的最佳实践

我有一个“你好,世界!” 使用 Om(从“Chestnut”lein 模板生成)在 ClojureScript 中的应用程序。

目标是使其设置为:

  • document.location.hash值反映了(:route app-state)向量的变化。
  • (:route app-state)矢量反映了值的变化document.location.hash
  • (:route app-state)应用程序在更改时重新呈现。

请注意,我打算将(:route app-state)向量作为应用程序当前状态的唯一真实来源。更改它的一种机制是用户修改 url。

我应该在哪里以及如何将此行为附加到 Om?


这是我的“你好,世界!” 应用程序。

这成功地写入了document.hash页面加载。最终这将是一个使用哈希导航来更改视图的单页应用程序。

(render )这对我来说感觉很脏,因为必须在函数中返回一个 DOM 元素,update-location-hash除了满足函数的要求之外没有任何目的render