tripenny-gui: как получить текст?
С помощью 'set text' в Threepenny-gui вы можете, задав элемент и строку, установить текст этого элемента:
Prelude Graphics.UI.Threepenny.Core> :t set
set :: ReadWriteAttr x i o -> i -> UI x -> UI x
Prelude Graphics.UI.Threepenny.Core> :t set text
set text :: String -> UI Element -> UI Element
Наличие функций get заставляет меня думать, что можно получить текст с заданным элементом.
Prelude Graphics.UI.Threepenny.Core> :t get
get :: ReadWriteAttr x i o -> x -> UI o
Prelude Graphics.UI.Threepenny.Core> :t text
text :: WriteAttr Element String
Prelude Graphics.UI.Threepenny.Core> :t get text
get text :: Element -> UI ()
Тем не менее, возвращаемый тип "получить текст" не то, что я ожидаю. Как восстановить исходную строку из элемента?
1 ответ
Если я правильно помню, проблема в том, что текстовое значение элемента включает все его подэлементы в виде HTML-кода. Я рекомендую использовать value
вместо этого, который работает для полей ввода.
ReadAttr
а также WriteAttr
реализуются с точки зрения ReadWriteAttr
чтобы избежать перегрузки. Как показывают типы, get
не делает ничего полезного для WriteAttr
а также set
не делает ничего полезного для ReadAttr
, хоть.