如何绑定到活动路由

时间:2017-08-10 10:04:51

标签: scala routes scala.js binding.scala

我正在使用com.thoughtworks.binding:route:11.0.0-M4库来管理路由,直到现在我按照TODO example(在项目github中可用)实现了这个东西:

Route.watchHash(currentTodoList)(new Route.Format[TodoList] {
  override def unapply(hashText: String) = todoLists.find(_.hash == window.location.hash)
  override def apply(state: TodoList): String = state.hash
})

但在使用的版本中,watchHash已被弃用,根据文档,应使用Route.Hash(state).watch()代替。

因此,表格可以改写如下:

val route = Route.Hash[TodoList](all /* all todo lists*/)(new Route.Format[TodoList] {
  override def unapply(hashText: String) = todoLists.find(_.hash == window.location.hash)
  override def apply(state: TodoList): String = state.hash
})
route.watch()

但是如何在路线变化时检索(绑定)当前的待办事项列表?作为参数提供的Var(todolist)现在是Route的内部。 此外Route.Hash[]Binding[Unit],因此我无法检索这样的值:route.bind.xxx

我错过了什么吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

尝试Comparable[]

请参阅Route.Hash.state