I have been looking into Ember.js, and it looks really great, but one thing that concerns me, and that I can’t get my mind around it, is if I start using it on an already running project.
Will I eventually have to move everything client side, and make my application a single page application at some point?
let me clarify…
So far the best way to communicate between client and server using Ember is REST. and that looks great, but what I don’t like is having all the templates loaded for the first time. and moving all the logic in my server to the client (or am I getting all of this wrong?), cause it looks like my server side will become a logic-less REST API.
Also, I’m using Yii Framework which has some JavaScript (Ajax enabled) components like grids. how can I have ember interact with all of this on navigation without having to rewrite a bunch of stuff already working on my application?
I’m on the login page (or state), and then after login in, I have to display a grid, that is just easy with Yii, and a full page load, but If I am using Ember, how can I have my grid display as it normally would? do I have to pre-load a handlebar template for the grid, and also the JavaScript that controls it?
No, you should not move everything to client side, especially authentication and validation that could be bypassed otherwise.
What you move to Emberjs is the yii-s View part of MVC, controller will output i.e JSON.
That Data then gets mapped to Embers Model part through Ember routing and controllers etc.
Since you are replacing Yii’s presentation logic with ember you should not use Yii’s UI classes like CGridView.
Mixing them might be possible but that does not seem like a good idea. You have to run your own in Ember.
http://www.yiiframework.com/wiki/409/ember-js-with-yii-rest-backend-demo-application/