[英]“Yield” doesn't work in binding.scala
几天前,我读到有关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>
}但是,代码不起作用。
请for (movie <- movies)
。 for (movie <- movies.value)
更改for (movie <- movies)
。
根据价值的Scaladoc方法 :
注意:不得在
@dom
方法主体内调用此方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.