【发布时间】:2018-01-30 16:46:52
【问题描述】:
几天前,我阅读了有关 binding.scala 的文章,发现它很酷,因此我决定编写自己的单页应用程序。
问题是我正在尝试将“li”项添加到“ul”元素中,但组件 Want 似乎没有看到更新。
以下代码:
case class Movie(title: Var[String], raring: Var[Int], watched: Var[Boolean])
var movies = Vars.empty[Movie]
@dom def Want = {
println(movies.bind, "!@#!@#!@#!")
<div class="want">
<ul>
{for (movie <- movies.value) yield {
<li>
<div>
<span>
{movie.title.bind}
</span>
<button onclick={event: Event => {
event.preventDefault()
movies.value.remove(movies.value.indexOf(movie))
println(movies.value)
}}></button>
</div>
</li>
}}
</ul>
</div>
当我更改电影时,什么也没有发生。
更新
在下面的评论之后我更新了代码:
def remove(movie:Movie) = {
movies.value.-=(movie)}
@dom def Want = {
println(movies, "!@#!@#!@#!")
<div class="want">
<ul>
{for (movie <- movies.bind) yield {
<li>
<div>
<span>
{movie.title.bind}
</span>
<button onclick={event: Event => {
event.preventDefault()
remove(movie)
}}></button>
</div>
</li>
}}
</ul>
</div>
} 但是,代码不起作用。
【问题讨论】:
-
我对您的问题投了反对票,因为您更新的代码完全一团糟。如果您在 scalafiddle.io 上创建一个可生产的示例并从此问题链接到它,您将更有可能获得帮助。
标签: scala scala.js binding.scala