Dom 如何在Elm中使用Window.dimensions初始化模型?
在一个滑动益智游戏中,我想根据初始窗口尺寸设置初始瓷砖大小(以最大化屏幕空间) 换句话说,我想根据Dom 如何在Elm中使用Window.dimensions初始化模型?,dom,elm,Dom,Elm,在一个滑动益智游戏中,我想根据初始窗口尺寸设置初始瓷砖大小(以最大化屏幕空间) 换句话说,我想根据Window.dimensions的初始值设置initialModel 我找不到如何执行此操作,最终使用端口获取初始窗口尺寸: index.html Elm.全屏(Elm.App、{ 窗口大小:[ document.documentElement.clientWidth, document.documentElement.clientHeight ] }); App.elm 端口窗口大小:(In
Window.dimensions的初始值设置initialModel
我找不到如何执行此操作,最终使用端口获取初始窗口尺寸:
index.html
Elm.全屏(Elm.App、{
窗口大小:[
document.documentElement.clientWidth,
document.documentElement.clientHeight
]
});
App.elm
端口窗口大小:(Int,Int)
初始模型=
--windowSize的一些功能
模型=
Signal.foldp更新初始模型输入
类型动作
=窗口大小调整(Int,Int)
| ...
窗口大小调整=
Signal.map WindowResize Window.dimensions
更新动作模型=
案例诉讼
窗口调整尺寸->
{模型|基于维度的一些更改}
...
有没有一种方法可以在不使用端口的情况下获得相同的结果?您可以使用软件包中的数据,根据输入信号的初始值检查模型的初始值
充分披露:我是该软件包的作者 因此,我可以看到这如何允许我访问传递给foldp'的第二个fn中的初始值。但我不确定我能用这个值做些什么,使它进入我的模型。一个小的代码示例将非常有用,因为我想我遗漏了一些东西…@JulianJelfs第二个函数允许您将初始值转换为模型的值。所以在这个函数中,你把初始值放入模型中,然后在阶跃函数中,你只需要像平常一样使用模型。