具有启动参数的模块控制器
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)
});
};
问题:
- 这是反模式吗?是否有其他推荐方法使用自定义外部数据实例化模块?
- 这会导致 m.route 出现问题吗?我在源代码中看到了一些递归调用的提及,但我无法理解它。
- 根据以上 2 点,
m.module
缺少参数是否是故意的设计选择?
哦...感谢所有参与现有文档和讨论的人。
不,这不是反模式,它是一个想法 explored in one of the blog articles, and also by Moria(Mithril 的路由器扩展库)
使用 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)
});
};
问题:
- 这是反模式吗?是否有其他推荐方法使用自定义外部数据实例化模块?
- 这会导致 m.route 出现问题吗?我在源代码中看到了一些递归调用的提及,但我无法理解它。
- 根据以上 2 点,
m.module
缺少参数是否是故意的设计选择?
哦...感谢所有参与现有文档和讨论的人。
不,这不是反模式,它是一个想法 explored in one of the blog articles, and also by Moria(Mithril 的路由器扩展库)