如何使用 Binding.scala 声明嵌入的 css
How do I declare embedded css with Binding.scala
我试图用 Binding.scala
声明一些嵌入的 css
import com.thoughtworks.binding._, Binding._
import org.scalajs.dom._
@dom def css = <style>
body {
background-color: lightblue;
}
</style>
dom.render(document.head, css)
但是,我收到错误消息:
ScalaFiddle.scala:6: error: not found: type lightblue
background-color: lightblue;
^
ScalaFiddle.scala:6: error: not found: value background
background-color: lightblue;
^
ScalaFiddle.scala:6: error: not found: value color
background-color: lightblue;
^
我该如何解决?
您看到错误消息是因为 {
是 Scala 的 XML 文字中的特殊字符。
在 style
元素中使用 CDATA
部分。
@dom def css = <style>
<![CDATA[
body {
background-color: lightblue;
}
]]>
</style>
{
在 CDATA
部分不再有特殊含义。
请注意,此 CDATA
方法仅在 coalescing
标志打开时有效。
如果您不小心关闭了标志,请参阅 https://github.com/ThoughtWorksInc/Binding.scala/issues/30 and https://github.com/ThoughtWorksInc/Binding.scala/issues/58。
使用杨波的回答:
@dom def css = <style>
<![CDATA[
body {
background-color: lightblue;
}
]]>
</style>
给我一个例外:
ScalaFiddle.scala:22: error: overloaded method value domBindingSeq with alternatives:
( text: String)binding.this.Binding.Constants[raw.this.Text]
...
见https://scalafiddle.io/sf/ATMVpjV/0
这解决了它:
@dom def css = <style>
{"""
body {
background-color: lightblue;
}
"""
}
</style>
我试图用 Binding.scala
声明一些嵌入的 cssimport com.thoughtworks.binding._, Binding._
import org.scalajs.dom._
@dom def css = <style>
body {
background-color: lightblue;
}
</style>
dom.render(document.head, css)
但是,我收到错误消息:
ScalaFiddle.scala:6: error: not found: type lightblue
background-color: lightblue;
^
ScalaFiddle.scala:6: error: not found: value background
background-color: lightblue;
^
ScalaFiddle.scala:6: error: not found: value color
background-color: lightblue;
^
我该如何解决?
您看到错误消息是因为 {
是 Scala 的 XML 文字中的特殊字符。
在 style
元素中使用 CDATA
部分。
@dom def css = <style>
<![CDATA[
body {
background-color: lightblue;
}
]]>
</style>
{
在 CDATA
部分不再有特殊含义。
请注意,此 CDATA
方法仅在 coalescing
标志打开时有效。
如果您不小心关闭了标志,请参阅 https://github.com/ThoughtWorksInc/Binding.scala/issues/30 and https://github.com/ThoughtWorksInc/Binding.scala/issues/58。
使用杨波的回答:
@dom def css = <style>
<![CDATA[
body {
background-color: lightblue;
}
]]>
</style>
给我一个例外:
ScalaFiddle.scala:22: error: overloaded method value domBindingSeq with alternatives:
( text: String)binding.this.Binding.Constants[raw.this.Text]
...
见https://scalafiddle.io/sf/ATMVpjV/0
这解决了它:
@dom def css = <style>
{"""
body {
background-color: lightblue;
}
"""
}
</style>