Ember.js勉強会に参加してきた。
( diary )先日、Ember.js勉強会に参加するために万葉さんにお邪魔してきました。
JSのフレームワークは他にBackbone.jsしか触れたことが無かったので他の選択肢として参加してみました。
今回はみんなでチュートリアルを読んでもくもくと作業をしてわかんないところが随時質問でした。
ですが、自分の力不足(方向音痴。。。)で場所がわからず1時間遅れるという不甲斐ない形となりましたがみんなに追いつこう
とせっせと作業をこなしたという次第です。
感想
Ember.Handlebars Class便利な件
印象てきだったのが
こんなふうにView側のAPIが用意されていて、この記述でイベント処理を諸々やってくれるのはありがたい。
Backbone.jsだったら通常のHTMLを記述しないといけないし、そもそもテンプレートエンジンてきなものは
用意されていない。
カスタマイズしたいときは普通に
Todos.CreateTodoView = Em.TextField.extend({ insertNewline: function() { var value = this.get('value'); if (value) { Todos.todosController.createTodo(value); this.set('value', ''); } } });
で自分用のViewオブジェクト作ってしまえば良い訳です。
あ、handlebar.jsっていうテンプレートエンジン利用してるのですね、これ。
Modelって言うクラスがない?!
MVCフレームワークなのになぜかModelって言うクラスはなくて
「Ember.Object Class」を継承して作成するっていうのがセオリーらしいです。
Todos.Todo = Em.Object.extend({ title: null, isDone: false });
調べてみるとサーバと通信するもの機構はないみたいでやるときは、通信部分を
jQueryとか使って実装しないといけないみたいですね。。。
http://emberjs.com/api/classes/Ember.Object.html
Debugging
なにかと大変らしい、ログイングの機能は用意されてはいるがなにかとおうのは大変らしい
まぁ
Backbone.jsとくらべるとテンプレートエンジンが結構便利なのでその分最初の前提となる知識は
必要になってきそうな感じがしました。もちろん通信自体は自前で実装する必要がある?!
逆をいうとBackbone.jsはREST通信なのでその辺は小回りが聞く感じですかね。