I’ve been learning Ember. A few suggestions for newbies…
-
Improve the docs. It wasn’t at all clear to me, for a long time, when I needed handlebars, when I need to do an Ember.get(), etc. Some of this is simpler by saying, which I didn’t see well stated, “Ember structure data isn’t available from HTML, so actions called from HTML must go get it explicitly.” Just an example.
-
This feeds right into the next one… Once you know this, you would know that you can’t provide, e.g., an option list such as…
{{#each model as |person|}} <option value="{{person}}"> {{person.name}}</option> {{/each}}
because {{person}} won’t survive that transition. But this should be more clearly explained in the tutorial. (Or, if it is now, I missed it.)
-
A bit more on when and why to use this.get() vs. Ember.get() would be nice. Again, it may be there, but I’m not easily able to find it… and I don’t need it so much now.
-
Initially, the model usage is confusing simply because the word is overloaded by using it as both the label and the value. For example, something like… {{component-name title=“MyComponent” model=model comp=“comp”}} Too many examples say “model=model”. Now I understand it, but initially, not so much. In my templates, I usually have multiple models active. Would it kill you to provide less confusing examples?
-
Things like CORS could use a good troubleshooting section. Especially combined with what can happen with prefixes.
-
Simple things… like initializing an input type=range with a negative value… just plain don’t seem to work. But they aren’t defined or covered, because old hands know either the secret work-around or a less obvious way to do it. (And it’s probably not user-error, as positive numbers work fine and negative numbers work as constants or not inside Ember.)
Overall, I’m reasonably pleased with Ember, and any system will have some hurdles. But it does seem like the Ember devs forget that they have years of Ember underneath their belts, and just assume that complex under-documented concepts or bizarrely non-functional code (those negative values again) are “normal.” I’d like it a bit more direct.