Как выполнить инициализацию после загрузки элемента в dom с помощью Binding.scala
@dom
def chart(show: Var[Boolean]) = {
if(show.bind) {
<canvas id="chartCanvas"><canvas>
}
}
Как я могу начать холст с некоторой библиотекой диаграммы как chartjs
когда он загружается в дом?
1 ответ
Решение 1
@dom
def chart(show: Var[Boolean]) = {
if(show.bind) {
val myCanvas = <canvas id="chartCanvas"><canvas>
myInitializationCode(myCanvas)
myCanvas
} else {
<!-- don't show canvas -->
}
}
Решение 2
Вы можете создать пользовательскую SingleMountPoint и поместить код инициализации в переопределенный mount
метод:
val yourCustomMountPoint = new SingleMountPoint[Boolean](show) {
override def mount() = {
super.mount()
// Your custom initialization code
}
override def unmount() = {
// Your custom clean up code
super.unmount()
}
override def set(newValue: Boolean) = {
// Your custom handler when `show` get changed
}
}
// Inject your custom mount point into the rendering process
yourCustomMountPoint.bind