问题标签 [mithril.js]

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

mithril.js - Mithriljs 不会根据数据的变化更新 DOM

我在某处读到,每次发生事件时都会更新 DOM,并且绑定到 DOM 的数据会发生变化。所以我想更多地了解它。我尝试了下面的代码,但是当 textarea 中的数据发生变化时 DOM 不会更新,但每当我单击或按 Tab 键时它都会更新。

我什至尝试过m.startComputaion(),但它们m.stopComputation()m.redraw()不起作用。

0 投票
1 回答
331 浏览

javascript - 在 Mithril 中使用 m.component() 时如何遍历 VDOM?

我是 Mithril 的新手,但对它执行良好编码模式和关注点分离的方式感到非常高兴。参考这个我开始编码,大量使用 m.component()。

后来我阅读了 Mithril 文章“当 CSS 让你失望”(http://lhorie.github.io/mithril-blog/when-css-lets-you-down.html),它解释了如何编写 Transformer-Functions遍历和操作虚拟 DOM 树。编写几种横切关注点的绝妙概念。

但是当我尝试将此模式与包含组件的 VDOM 一起使用时,它不起作用,因为 m.component 返回的是组件而不是 VDOM-Object。检测组件无济于事,因为此时尚未构建嵌入式视图。

现在我在问自己,如何处理这个问题,或者我是否误解了一些根本性的错误......

这里有几行代码显示了问题:

其他人如何处理这个问题?

0 投票
2 回答
312 浏览

twitter-bootstrap - 使用 mithril.js 的引导按钮之间的水平空间

使用纯引导程序时,按钮之间的水平空间很小。

如果元素是用 mithril.js 创建的,这个空间就会消失:

是什么导致引导程序在按钮之间添加小空间?如何在 mithril.js 中重现它?

0 投票
1 回答
1054 浏览

javascript - 如何不在秘银中重新渲染整个列表

我使用 react 已经有一段时间了,想试试 Mithril.js。

浏览了文档和示例并喜欢我所看到的,所以我说我应该动手并开始编码!

我有一个简单的 API 调用,它接收 JSON 数据,然后输出ul包含所有项目的列表。我已经为动画集成了 GSAP TweenMax,我想要实现的非常简单 - 我在加载时淡入所有内容,然后onclick我想淡入淡出一个元素并将其从 DOM / 数据中删除。

似乎正在发生的事情是元素正在淡出,整个ul列表正在重新渲染,并且该元素保留在 DOM 中,不透明度为 0:

我很新……昨天才开始阅读。

0 投票
1 回答
488 浏览

html - 如何在 Mithril.js 中获取浏览器高度以进行动态分配

所以我有一个下拉菜单,并试图给它一个动态的高度;使用mithril.js怎么可能?

这是我到目前为止所尝试的:这是一段代码,我试图给列表一个动态高度。最终目标是让列表具有动态高度,以便在固定导航栏上使用overflow-y:scroll.

0 投票
2 回答
2588 浏览

javascript - Mithril:在事件/动态上渲染组件

试图掌握秘银的窍门,并不能真正理解一件事。我可以在事件上渲染组件吗?

假设我有一个父组件:

它呈现标题组件(和菜单的占位符(我什至需要它吗?)):

当用户单击菜单链接时,我想从我的 API 加载菜单项,然后才呈现菜单。

这部分显然行不通

那么,问题是在事件上渲染组件的正确方法是什么?

0 投票
1 回答
444 浏览

mithril.js - m.prop() 没有按预期工作

目前我正在使用Mithriland创建一个简单的应用程序CoffeeScript

代码如下:

当我运行该应用程序时,它给了我以下错误:

未捕获的类型错误:ctrl.email 不是函数

我认为错误的可能原因是该mount功能未正确配置模块。

为什么 m.prop() 在这里不起作用?

0 投票
1 回答
664 浏览

javascript - 将可拖动事件委托给父元素

我有嵌套在 a 中的可拖动li元素ul又嵌套在 a 中div,如下所示:

这些元素有多个,div我正在尝试实现拖放功能以将li一组元素移动div到另一组。

我在这里连接了ondragenter,ondragleave回调:

event.target回调的 始终是 中的嵌套子元素时,问题就出现了div,例如li,因此回调会不断被触发。在这种情况下,我正在div.group使用回调更改 的颜色,从而导致div.group不受欢迎的闪烁。

有没有办法委派事件,只允许div祖父母li处理事件?或任何其他解决此问题的方法?

编辑:仍然很想知道是否有办法做到这一点,但现在我正在使用我在这里找到的解决方法。

0 投票
2 回答
2383 浏览

mithril.js - Mithril.js: Should two child components talk to each other through their parent's controller?

I'm a bit stuck looking for the right way to do the following. I have a parent component with two child components (see simplified code below). I would like to know the proper way for ChildA, when its button is pressed, to 'invoke' ChildB. They should communicate through the parent, but should they communicate through their controllers? In that case the parent has to pass its controller to the controllers of the children.

0 投票
1 回答
171 浏览

frontend - 用于前端开发的 Mithril 中的 API 模拟,例如 jquery-mockjax

我在物联网框架中使用秘银。我试图将前端开发与后端 API 实现任务隔离开来。在 jQuery 中,我使用了 jQuery-mockjax 和 Angular 中的类似机制。我的理解是,这些库拦截 ajax 函数调用并适当地响应使用 $.mockjax (或类似函数)设置的数据

此处推荐的机制https://groups.google.com/forum/#!topic/mithriljs/FzpCPMfauf0没有提供实现此功能的灵活性。对于选定的少数 API,没有简单的方法可以使用 mock。

查看代码后,我意识到,要实现这一点,我需要访问“ajax”函数(或只是 XHR 处理部分),以便可以使用我自己的可以模拟所选 API 的实现来覆盖它。问题是 ajax 是库中的本地函数。如果它作为 m.ajax 公开,我的库可以覆盖它并获得我需要的功能。

我的问题是,有没有更好的方法来实现同样的目标?如果你做过类似的事情,请分享。

我的代码结构将是这样的:

上面两个文件是我在开发模式时在页面中插入的。其余代码保持不变。