LoginSignup
1

More than 5 years have passed since last update.

Scala.jsでAngular(1.5)試した

Last updated at Posted at 2016-04-03

Scala.jsに入門したのでangularを使い、簡単なTODOアプリを書いてみた。

コードはコチラ

angularのコントローラー

todos変数をhtmlでng-repeatしてて、todoServiceでajax通信しデータ取得してる。

class TodoCtrl($location: Location, todoService: TodoService) extends Controller {
  var todos = js.Array[Todo]()

  def list() = {
    todoService.list().onSuccess { case j =>
      todos = j.items.toJSArray
    }
  }

TypeScriptで書いてたのと似てる。
Todoのcase classがサーバー側と共通で使えるので良い。

他はリポジトリのコード読んでください。

良かったところ

  • ほんと普通にScalaでjsが書ける。
  • case classがサーバー側と共通で使えて良い。
  • ライブラリが対応してればjs側でも同じく使える。
  • ファイルサイズ意外と小さい?。minifyするfullOptJsで288KB。

悪かったところ

  • コンパイル時間が(ry
  • たまにcleanしないと上手くjsが生成されないことがある。
  • 生成されたjs、読む気になれん。
  • HttpPromiseからFutureに変換してonCompleteするとTodoCtrlのtodosの更新が検知されなくなってよく分からんかった。

まとめ

angular+scala.jsは、上手く動かないと聞いていたが今は大丈夫なよう。
ImmutableJSとか使う必要なく、Scalaのメソッドで書けるので良い...。パターンマッチがjsで使えるの良い...。
Scala.js良いね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1