# Quite sad that I am unable to learn ember

**URL:** <https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381>\
**Category:** Uncategorized\
**Created:** [February 22, 2015, 3:03am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381 "2015-02-22T03:03:17Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![mindaslab](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/mindaslab/32/10376_2.png) [@mindaslab](https://discuss.emberjs.com/u/mindaslab)\
**Post date:** [February 22, 2015, 3:03am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/1 "2015-02-22T03:03:17Z")

</div>

My instinct tells me that ember is far better than angular. But I am unable to learn it. I hope one day ember tutorails will be a place to be for those who don’t know about it.

[github.com/emberjs/guides/issues/6](http://github.com/emberjs/guides/issues/6)

---

<div class="post-metadata">

**Author:** ![bailey86](https://avatars.discourse-cdn.com/v4/letter/b/ecccb3/32.png) [@bailey86](https://discuss.emberjs.com/u/bailey86)\
**Post date:** [February 22, 2015, 9:05am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/2 "2015-02-22T09:05:52Z")

</div>

My view is…

Install the ember chrome extension to see what is going on.

Look at the first tutorials at [Fire Up Ember.js | Pluralsight](http://www.pluralsight.com/courses/fire-up-emberjs)

Go through the ember guide really carefully.

Realise that ember creates lots of objects in memory by default - so if you simply put in one line to create the app then ApplicationController and IndexRoute type things are created in memory for you.

I’ve heard good things about the ember CLI 101 book so will be reading that next.

I’m from a non JavaScript background so it has been a bit of tough - but I think I’m getting there.

Good luck!

---

<div class="post-metadata">

**Author:** ![bailey86](https://avatars.discourse-cdn.com/v4/letter/b/ecccb3/32.png) [@bailey86](https://discuss.emberjs.com/u/bailey86)\
**Post date:** [February 22, 2015, 9:20am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/3 "2015-02-22T09:20:51Z")

</div>

Also, bear in mind…

You can add a simple route to a router - or you can add a resource. The reason you may choose a resource is when you want to access a bunch of items - such as a list of blog posts. Resource provides the extra functionality for id numbers etc.

---

<div class="post-metadata">

**Author:** ![bailey86](https://avatars.discourse-cdn.com/v4/letter/b/ecccb3/32.png) [@bailey86](https://discuss.emberjs.com/u/bailey86)\
**Post date:** [February 22, 2015, 10:17am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/4 "2015-02-22T10:17:14Z")

</div>

And also bear in mind that Ember is adding **a lot** to the Javascript. It does have the concept of classes - which are defined with Initial.Capitals in the ‘class’ name - and ‘instances’ are all ‘lowercasenames’.

Javascript is a prototype based language - therefore any object can be used as a class. Ember wants you to define classes for routes/controllers etc - and then it uses these classes to create the actual routes/controllers etc.

Reading all the docs is useful - even if not fully understood the first time - it will give you scope on the amount that Ember is doing - for example - on page [http://emberjs.com/guides/object-model/computed-properties/](http://emberjs.com/guides/object-model/computed-properties/)

You will see ‘Ember extends the function prototype’. This is quite a thing to do - extending the Javascript ‘function’ prototype - but it does it to allow for computed properties - which sound useful.

This explains more:

> **[Disabling Prototype Extensions - Configuration - Ember Guides](https://guides.emberjs.com/release/configuring-ember/disabling-prototype-extensions/)**
>
> By default, Ember.js will extend the prototypes of native JavaScript arrays to implement the Ember.Enumerable, Ember.MutableEnumerable, Ember.MutableArray and Ember.Array interfaces. This polyfills ECMAScript 5 array methods in browsers that do...

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [February 22, 2015, 4:14pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/5 "2015-02-22T16:14:27Z")

</div>

I found that it is helpful to take a look at simple working [Ember CLI](http://www.ember-cli.com/) examples like:

- [GitHub - sosproduction/ember-cli-master-detail](https://github.com/sosproduction/ember-cli-master-detail)
- [GitHub - stefanpenner/ember-cli-ember-fire](https://github.com/stefanpenner/ember-cli-ember-fire)

There will be documentation put up that is more up-to-date with Ember CLI. I welcome you back than!!

---

<div class="post-metadata">

**Author:** ![mindaslab](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/mindaslab/32/10376_2.png) [@mindaslab](https://discuss.emberjs.com/u/mindaslab)\
**Post date:** [February 22, 2015, 5:01pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/6 "2015-02-22T17:01:42Z")

</div>

Thanks a lot people. Will try your suggestions too. Currently having some success with “Building web apps with Ember.js” book. Thanks a lot for your reply.

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [February 22, 2015, 5:10pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/7 "2015-02-22T17:10:13Z")

</div>

I did not read it yet but [ember 101 by Adolfo Builes [Leanpub PDF/iPad/Kindle]](https://leanpub.com/ember-cli-101) also seems interesting.

---

<div class="post-metadata">

**Author:** ![lookingsideways](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/lookingsideways/32/13652_2.png) [@lookingsideways](https://discuss.emberjs.com/u/lookingsideways)\
**Post date:** [February 22, 2015, 5:21pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/8 "2015-02-22T17:21:26Z")

</div>

> [@bailey86](#):
>
> You can add a simple route to a router - or you can add a resource. The reason you may choose a resource is when you want to access a bunch of items - such as a list of blog posts. Resource provides the extra functionality for id numbers etc.

That’s not quite true. It used to be that only `resources` could be nested but since 1.7 `routes` can be nested too - [Ember 1.7.0 and 1.8 Beta Released](http://emberjs.com/blog/2014/08/23/ember-1-7-0-released.html). This is useful as routes don’t reset the namespace like resources do.

Both `routes` and `resources` can be used for lists of items, there is no difference in functionality between them as far as that is concerned. However there is a difference between `ObjectController` (single-object) and `ArrayController` (list of objects) for dealing with lists of items. If you don’t define the controller explicitly then Ember will intelligently choose the type of controller it creates based on the type returned by the `model` hook.

---

<div class="post-metadata">

**Author:** ![varblob](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/varblob/32/10304_2.png) [@varblob](https://discuss.emberjs.com/u/varblob)\
**Post date:** [February 22, 2015, 6:37pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/9 "2015-02-22T18:37:28Z")

</div>

Just noting here that ArrayController, ObjectController and eventually Controller are going away in Ember 2.0, I think they already took out ArrayController in ember 1.10 but don’t quote me on that.

So it would probably be good to use plain old Controller and get used to accessing model properties like {{model.property}} rather than {{property}}.

---

<div class="post-metadata">

**Author:** ![jasonmit](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/jasonmit/32/182_2.png) [@jasonmit](https://discuss.emberjs.com/u/jasonmit)\
**Post date:** [February 22, 2015, 7:09pm UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/10 "2015-02-22T19:09:45Z")

</div>

> [@varblob](#):
>
> Just noting here that ArrayController, ObjectController and eventually Controller are going away in Ember 2.0, I think they already took out ArrayController in ember 1.10 but don’t quote me on that.

That’s not the case, they deprecated ObjectController but haven’t deprecated ArrayController yet. ObjectController still exists since they realize not everyone can rewrite their app overnight. By 2.0 it will be removed, along with array controller.

---

<div class="post-metadata">

**Author:** ![bailey86](https://avatars.discourse-cdn.com/v4/letter/b/ecccb3/32.png) [@bailey86](https://discuss.emberjs.com/u/bailey86)\
**Post date:** [February 23, 2015, 10:31am UTC](https://discuss.emberjs.com/t/quite-sad-that-i-am-unable-to-learn-ember/7381/11 "2015-02-23T10:31:57Z")

</div>

And one more thing which may help…

When you see

```
App.PostsRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('post');
  }
});

```

…bear in mind that the function is a callback function. My understanding is that when Ember created the posts route from this new App.PostsRoute ‘class’ the model property is set to a value returned from the function.
