具有启动参数的模块控制器

module controller with initiation parameter

使用 m.module 时,我经常想为控制器构造函数提供参数,以便第一次渲染以正确的数据开始。但是,Mithril 文档和示例总是显示没有参数的 module.controller()module.vm.init()

为了解决这个问题并让 module.controller(initData) 我已经使用这个小的实用函数来包装和扩展现有的 m.Module:

var mModule = function (dom, mod, arg) {
  return m.module(dom, {
    view: mod.view,
    controller: mod.controller.bind(mod.controller,arg)
  });
};

问题:

  1. 这是反模式吗?是否有其他推荐方法使用自定义外部数据实例化模块?
  2. 这会导致 m.route 出现问题吗?我在源代码中看到了一些递归调用的提及,但我无法理解它。
  3. 根据以上 2 点,m.module 缺少参数是否是故意的设计选择?

哦...感谢所有参与现有文档和讨论的人。

不,这不是反模式,它是一个想法 explored in one of the blog articles, and also by Moria(Mithril 的路由器扩展库)