Convert the result of a dom.Node.getAttribute
call to appropriate Scala type.
Convert the result of a dom.Node.getAttribute
call to appropriate Scala type.
Note: HTML Attributes are generally optional, and dom.Node.getAttribute
will return
null
if an attribute is not defined on a given DOM node. However, this decoder is
only intended for cases when the attribute is defined.
// @TODO Orly? What about boolean attrs? How do we distinguish that? What about props?
Convert desired attribute value to appropriate DOM type.
Convert desired attribute value to appropriate DOM type. The resulting value should
be passed to dom.Node.setAttribute
call, EXCEPT when resulting value is a null
.
In that case you should call dom.Node.removeAttribute
instead.
We use null
instead of Option here to reduce overhead in JS land. This method
should not be called by end users anyway, it's the consuming library's job to
call this method under the hood.
(Since version ) see corresponding Javadoc for more information.
This trait represents a way to encode and decode HTML attribute or DOM property values.
It is needed because attributes encode all values as strings regardless of their type, and then there are also multiple ways to encode e.g. boolean values. Some attributes encode those as "true" / "false" strings, others as presence or absence of the element, and yet others use "yes" / "no" or "on" / "off" strings, and properties encode booleans as actual booleans.
Scala DOM Types hides all this mess from you using codecs. All those pseudo-boolean attributes would be simply
Attr[Boolean](name, codec)
in your code.