Ember – Object has no method 'map'-Collection of common programming errors

I am going through the ember.js guides to learn Ember, and I am using the latest builds of ember.js, ember-data.js, and handlebars.js. I am able to successfully set up a basic nav that switches between views. However, upon trying to integrate a model with a {{#each model}}, I get an error message: Uncaught TypeError: Object # has no method ‘map’

Many people seem to have asked a related question, but the solution has always been to update the version of ember, which I have already done.

I believe have followed the tutorial precisely and my code so far is as follows.

App = Ember.Application.create();

App.Store = DS.Store.extend({
    revision: 12,
    // Says we are specifying all models in js
    adapter: 'DS.FixtureAdapter'
});

App.Router.map(function() {
    this.resource('posts');
    this.resource('about');
});

App.PostsRoute = Ember.Route.extend({
    model: function() {
        return App.Post.find();
    }
});

App.Post = DS.Model.extend({
    title: DS.attr('string'),
    author: DS.attr('string'),
    intro: DS.attr('string'),
    extended: DS.attr('string'),
    publishedAt: DS.attr('date')
});

App.Post.FIXTURES = ({
    id: 1,
    title: 'Book Title',
    author: 'Dave',
    publishedAt: new Date('12-27-2012'),
    intro: 'This is an introduction to the book',
    extended: 'This is an even longer introduction to the book'
}, {
    id: 2,
    title: 'Book Title 2',
    author: 'James',
    publishedAt: new Date('08-13-2012'),
    intro: 'This is an introduction to another book',
    extended: 'This is an even longer introduction to another book'
});

And the relevant markup:



    
        {{#linkTo 'index' classNames='brand'}}Brand{{/linkTo}}
        
    

{{outlet}}





Here is some text about the page

{{#each model}} {{/each}}

Recent Posts
{{title}} by {{author}}

All help is much appreciated, and sorry if the formatting of this question is awful – it’s my first question! Cheers!

  1. The main issue here is that your {{#each}} statement is a little malformed, you should be iterating over the controller object like so:

    {{#each controller}}
      

    {{/each}}

    This is because Ember controllers act a a proxy to their object or-in the case of Ember.ArrayController-to their array.

    {{title}} by {{author}}
  2. Try using controller instead of model to iterate over the models in an array controller.

            {{#each controller}}
               

    {{/each}}

    {{title}} by {{author}}

Originally posted 2013-11-23 09:51:25.