Slide 1

Slide 1 text

Ember.js

Slide 2

Slide 2 text

Paul Chavard capitainetrain.com

Slide 3

Slide 3 text

Capitaine Train recrute!

Slide 4

Slide 4 text

*.js

Slide 5

Slide 5 text

Backbone.js Knockout.js Serenade.js Angular.js Spine.js Batman.js Ember.js

Slide 6

Slide 6 text

Bindings HTML Templates Hierarchical Views Interoperability Backbone.js Spine.js Knockout.js Batman.js Serenade.js Angular.js Ember.js SproutCore Cappuchino > 1.5

Slide 7

Slide 7 text

Object

Slide 8

Slide 8 text

✓ Ember.Object.create ✓ Ember.Object.extend ✓ Ember.Object.reopen ✓ Ember.Object.reopenClass

Slide 9

Slide 9 text

Bindings

Slide 10

Slide 10 text

✓ Ember.Binding.bool(path) ✓ Ember.Binding.not(path) ✓ Ember.Binding.notNull(path) ✓ Ember.Binding.and(path1, path2) ✓ Ember.Binding.or(path1, path2)

Slide 11

Slide 11 text

Templates

Slide 12

Slide 12 text

✓ {{App.user.fullName}} ✓ {{{App.user.fullName}}} ✓ {{unbound App.user.fullName}} ✓ {{view Ember.Button target=”App.user” action=”doStuff”}} ✓ {{collection contentBinding=”App.usersList” tagName=”ul”}}

Slide 13

Slide 13 text

add user ✓ ✓ {{template app_header}} ✓ {{#with App.user}} {{fullName}} {{/with}}

Slide 14

Slide 14 text

✓ {{log App.user.fullName}} ✓ {{debugger}}

Slide 15

Slide 15 text

Controllers

Slide 16

Slide 16 text

User User User User UsersController StatsView ListView Button

Slide 17

Slide 17 text

Enumerables

Slide 18

Slide 18 text

✓ Ember.Enumerable.mapProperty ✓ Ember.Enumerable.filterProperty ✓ Ember.Enumerable.findProperty ✓ Ember.Enumerable.everyProperty ✓ Ember.Enumerable.someProperty

Slide 19

Slide 19 text

Demo github.com/tchak/parisjs-app

Slide 20

Slide 20 text

twitter @emberjs github @emberjs IRC #emberjs emberjs.org

Slide 21

Slide 21 text

twitter @tchak13 github @tchak talks.tchak.net

Slide 22

Slide 22 text

thanks ! questions ?