1
在更新視圖後是否有直接的方法可以執行Cmd
?特別是,我試圖在按下特定鍵(如回車鍵)時將光標重新定位在textarea
中。在我update
功能我:在視圖更新後調用端口在Elm
case keyboardEvent.key of
"Enter" ->
(modelAfterEnterPressed model keyboardEvent.selectionStart, setCursor model.cursor)
"Tab" ->
....
我setCursor
端口稱爲以及相應的JavaScript代碼調用正確的textarea
的setSelectionRange
功能。然後然後 Elm稱我的view
函數更新textarea
的內容。不幸的是,這消除了我的光標位置。
我需要爲textarea
的內容更新之前在我的JavaScript端口中調用textarea.setSelectionRange()
。任何方式做到這一點,而不求助於setTimeout
這可能無法正常工作,並可能導致在超時內閃爍?
Elm實際上有一個'requestAnimationFrame()'的內置訂閱函數:http://package.elm-lang.org/packages/elm-lang/animation-frame/latest/AnimationFrame。我擔心鍵入的鍵可以在第一個'KeyboardEvent'和下一個動畫幀之間註冊/處理。這會拋開一切。 –