Sürgülü bir bulmaca oyununda, ilk pencere boyutlarına göre (başlangıçta ekran gayrimenkulünü en üst düzeye çıkarmak için) ilk karo boyutunu ayarlamak istiyorum. Diğer bir deyişle,Elm Window.dimensions kullanarak modeli nasıl başlatılır?
, I Window.dimensions
başlangıç değerine göre initialModel
ayarlamak istiyorum.
ben bunun nasıl bulmak ve ilk pencere boyutlarını almak için bağlantı noktalarını kullanarak sona erdi olamazdı:
index.html
Elm.fullscreen(Elm.App, {
windowSize: [
document.documentElement.clientWidth,
document.documentElement.clientHeight
]
});
App.elm
port windowSize : (Int, Int)
initialModel =
-- some function of windowSize
model =
Signal.foldp update initialModel input
type Action
= WindowResize (Int, Int)
| ...
windowResize =
Signal.map WindowResize Window.dimensions
update action model =
case action of
WindowResize dimensions ->
{ model | some change based on dimensions }
...
Bağlantı noktası kullanmadan aynı sonucu elde etmenin bir yolu var mı?
Bu yüzden, bunun, katlamadan geçen ikinci fn içindeki başlangıç değerine erişmemi nasıl sağladığını görebiliyorum. Ama modelime almam için bu değerle ne yapmam gerektiğini bilemiyorum. Küçük bir kod örneği çok yararlı olacaktır çünkü sanırım bir şeyleri özlüyorum ... –
@JulianJelfs İkinci işlev, bir başlangıç değerini modelinizin bir değerine dönüştürmenize izin verir. Yani bu fonksiyonda bu başlangıç değerini modele koyarsınız, o zaman adım fonksiyonunda modeli sadece normal olarak tüketirsiniz. – Apanatshka
Tamam, ekstra ipucu için çok teşekkürler. –