-
mhtml 에서 imitate 로 Var 값에 Rx 복사하기web/mhtml 2021. 10. 25. 22:07
문제
mhtml 에서 아래와 같이 x, y 가 있을 때 x 값에 y 를 복사해 보자
val x: Var[Int] = Var(1) val y: Var[Int] = Var(2)
코드
mhtml 의 imitate 를 사용해 복사할 수 있다.
import mhtml._ import org.scalajs.dom object MHtmlTest { def view(): Unit = { val x: Var[Int] = Var(1) val y: Var[Int] = Var(2) val z: Rx[Int] = x.imitate(y) val content = <div>{x} {z}</div> mount(dom.document.getElementById("main_content"), content) } }
화면에 x, z 값이 노출되어 2 2 를 확인할 수 있다.
그런데 z 값을 빼고 아래와 같이 작성한다면 imitate 가 적용되지 않는다.
val content = <div>{x}</div>
그래서 화면에는 1 이 노출된다.
설명
impure run 사용하기를 응용하면 아래처럼 작성하는 것도 가능하지 않을까?
import mhtml._ import org.scalajs.dom object MHtmlTest { def view(): Unit = { val x: Var[Int] = Var(1) val y: Var[Int] = Var(2) y.impure.run(value => x := value) val content = <div>{x}</div> mount(dom.document.getElementById("main_content"), content) } }
'web > mhtml' 카테고리의 다른 글
impure run 사용하기 (0) 2021.10.28 mhtml Rx 이해하기 - Ajax 호출시 경험 (0) 2021.10.27 javascript callback 처리 하기 - checkbox (0) 2021.10.25 javascript callback 처리 하기 - dropdown (0) 2021.10.25 mhtml - non-reacitve 적용하기 (0) 2021.08.12