Routes

App.Router.map(function() {
  this.resource('trips', function() {
      this.route('item', { path: '/:trip_id' });
  });

  this.route('upcoming');
  this.route('about', { path: '/about' });
  this.route('schedules');
  this.route('history');
  this.route('post');
});

A route

App.IndexRoute = Ember.Route.extend({
  setupController: function(controller) {
    controller.set('title', 'my app');
    // <h1>{{title}}</h1>
  },

  setupController: function(controller, model) {
    controller.set("model", model);
    this.controllerFor('topPost').set('model', model);
  },

  model: function(params) {
    return this.store.find('posts');
    return this.store.find('post', params.post_id);
  },
  
  serialize: function(model) {
    // this will make the URL `/posts/foo-post`
    return { post_slug: model.get('slug') };
  }
});

View

App.InfoView = Ember.View.extend({
  templateName: 'input',  /* optional */

  fooName: "Hello"  /* {{ view.fooName }} */

  click: function(e) {
    "I was clicked";
  }

});

markup

<img {{bindAttr src="avatarURL"}}>
<button {{action follow}}>

Value binding:

{{view Ember.TextField class="input block" valuebinding="emailAddresses"}}

Actions:

<button {{action invite emailAddresses}}>Invite></button>

<a href="#" {{action set "isEditingContacts" true target="view"}}