Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Two word about Ember.js

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Two word about Ember.js

Here is presentation for my speech at epamjsopen at Vinnitsya. I talked about frontend history, today's frameworks, ember.js, its history, components structure, relations, nesting and tools for development. Just in two words.

Avatar for Vitaliy Ribachenko

Vitaliy Ribachenko

May 16, 2015

Other Decks in Programming

Transcript

  1. ‹#› CONFIDENTIAL EMBER.APPLICATION Namespace 1 Resolver 2 Starts Router 3

    Render application template 4 Application Router Route Model Controller Template
  2. ‹#› CONFIDENTIAL EMBER.ROUTER Application state as URL 1 Route initialization

    2 Code generation 3 Application Router Route Model Controller Template
  3. ‹#› CONFIDENTIAL EMBER.ROUTER Look for model 1 Controller initialization 2

    Template rendering 3 Application Router Route Model Controller Template
  4. ‹#› CONFIDENTIAL DS.MODEL Keep typified attributes of incoming JSON 1

    Default values 2 Dependencies 3 Application Router Route Model Controller Template
  5. ‹#› CONFIDENTIAL EMBER.CONTROLLER Decorate the model 1 Keep session-range model

    data 2 Toggle attributes for UI manipulation 3 Application Router Route Model Controller Template
  6. ‹#› CONFIDENTIAL TEMPLATE Keeps layout 1 Repeat {{#each}} 2 Conditional

    {{#if}} 3 Application Router Route Model Controller Template Components {{my-comp}} 4 {{outlet}} 5
  7. ‹#› CONFIDENTIAL INHERITANCE Ember.Object 1 Ember.Object.extend(mixin, mixin, { }) 2

    Ember.Object.reopen({ }) 4 this._super 6 Ember.Object.create({ }); 5 Ember.Mixin 3
  8. ‹#› CONFIDENTIAL OBSERVABLE Ember.computed (alias, equal, filter etc) 1 Function.property

    2 Function.observes 3 a: true, b: function() { return !this.get(‘a’); }.property(‘a’)
  9. ‹#› CONFIDENTIAL CODE GENERATION this.resource('posts', function(){ this.route('post', { path: ':id'

    }) }) Post (Route | Controller | Template) Posts (Route | Controller | Template)
  10. ‹#› CONFIDENTIAL CODE GENERATION this.resource('posts', function(){ this.route('post', { path: ':id'

    }) }) this.resource(‘mysuperapp’, function(){ this.route(‘index’, { path: ‘/‘ }) })
  11. ‹#› CONFIDENTIAL POSTS ROUTE model: function(){ return [ { title:

    ‘One’ }, { title: ‘Two’ } ] }, setupController: function(controller, model) { controller.set(‘model’, model) }
  12. ‹#› CONFIDENTIAL POSTS TEMPLATE: LINKING {{#foreach post in model}} <span

    {{link-to “posts.post” post}}>{{post.title}}</span> {{/#foreach}}
  13. ‹#› CONFIDENTIAL 2.0 ES6 1 Web components 2 Fast as

    hell UI 3 Routable components 4 Much much more 5