Scalatags生成HTML还是Javascript
Does Scalatags generate HTML or Javascript?
我看到一些Scala代码似乎可以生成HTML。。。
def pagePlay: TypedTag[dom.raw.HTMLElement] = div{
val levels = Array(
(10, "Easy game; you are allowed 10 misses."),
(5, "Medium game; you are allowed 5 misses."),
(3, "Hard game; you are allowed 3 misses.")
)
div(
p("Inspired from ")(a(href:="http://www.yiiframework.com/demos/hangman/", target:="_blank","Yii's demo")),
p("This is the game of Hangman. You must guess a word, a letter at a time.'n" +
"If you make too many mistakes, you lose the game!"),
form(id := "playForm")(
for((level,text) <- levels) yield {
val levelId = s"level_${level}"
div(`class`:="radio")(
input(id:=levelId, `type`:="radio", name:="level", onclick:={ ()=>
Model.level() = level
}, {if(level == Model.level()) checked:="checked"}),
label(`for`:=levelId, style:="padding-left: 5px")(text)
)
}, br,
input(`type`:="button", value:="Play!", `class`:="btn btn-primary", onclick:={ () =>
if(Model.level() > 0) {
Model.start()
goto(pageGuess)
}else{
dom.alert("Please select level!")
}
})
)
)
}
^这段ScalaTag代码实际上是在生成HTML,而HTML可以由一个没有javascript支持的简单网络爬虫读取,还是在生成javascript,修改DOM以生成div和段落?
我试着阅读文档,但对于div和p,除了"Pattern:div:Tags.this.ConcreteHtmlTag[html.div]"
它同时使用两者,至少现在它使用了:
来自文档:
Although Scalatags was originally a HTML-String generation library, it now
ships with an additional backend that runs only on ScalaJS.
此外:
DOM后端提供了一个额外的方法.render on all Scalatags片段,它将片段转换为DOM树:
val elem = div.render
assert(elem.children.length == 0)
elem.appendChild(p(1, "wtf", "bbq").render)
assert(elem.children.length == 1)
val pElem = elem.children(0).asInstanceOf[Paragraph]
assert(pElem.childNodes.length == 3)
assert(pElem.textContent == "1wtfbbq")
As you can see, you can manipulate DOM elements directly, calling standard DOM APIs like .children, .appendChild, etc.
正如您所看到的,您可以直接操作DOM元素,调用标准的DOMAPI,如.childs、.appendChild等。正如您所知,这些都是Javascript!
相关文章:
- 在javascript中确定输入数字是负数还是正数
- 最好使用JavaScript还是XQuery
- 是我的第三方JavaScript返回html还是只是一个空对象
- 我的HTML、CSS和Javascript应该放在一起还是分开
- 如何确定Javascript数组中的字段是空的还是null
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- JavaScript中的延期/承诺概念是一个新的概念,还是函数式编程的传统部分
- 如何使用JavaScript确定用户是在内部网络还是外部网络中
- Scalatags生成HTML还是Javascript
- @internal react 代码中的 JavaScript 文档标签,是 jsdoc、闭包还是其他什么
- JavaScript 对象是单向链接还是双向链接
- 我应该将javascript框架与我的应用程序捆绑在一起还是使用公共CDN
- Javascript - 确定数组中的值是正数还是负数(使用开关)
- JavaScript是同步的还是异步的
- 在 MVC3 视图中使用嵌入式 JavaScript 还是单独的 .js 文件更好
- 是经过编译的Javascript还是经过解释的语言
- javascript正则表达式,用于检测是内联javascript还是外部脚本
- 我应该使用JavaScript还是服务器来呈现这个模板?
- 浏览器是真正逐行读取JavaScript还是多次读取?
- 检查一个值是JavaScript还是jQuery中的数字