Мне нравится изображать Ember.js такими парами
- Представления и шаблоны коррелированы (очевидно), настройте Views-Class для управления шаблоном (например, classNames)
- Маршрутизатор и Маршруты работают немного как контроллер в MVC. Они отвечают за направление запроса к правильной конечной точке
- Контроллер и Модель ориентированы на модель, одна (Модель) описывает данные, которые вы будете обрабатывать в своем приложении, в то время как контроллер ведет себя как своего рода прокси (или декоратор, если это больше подходит вам). Например, шаблоны будут подключены к контроллеру и
По сути, это означает, что вы загружаете свой контроллер (одиночный или массив) моделью и теперь можете легко моделировать процессы, работающие на этой модели (то есть то, что не касается модели в ее ядре / данных) в вашем контроллере. Для примера блогового приложения вы должны описать Пост в модели и добавить что-то подобное для контроллера
App.PostController = Ember.ObjectController.extend({
content: null,
// initial value
isExpanded: false,
expand: function() {
this.set('isExpanded', true)
},
contract: function() {
this.set('isExpanded', false)
}
});
Теперь вы можете взаимодействовать с представлением модели в терминах внешнего интерфейса, продуманного через контроллер. Расширение поста или нет не меняет модель, а только изменение данных.
Что касается перезагрузки данных с сервера, у меня есть два ответа для вас
- Я нашел эту статью весьма полезной для понимания связей (и простого опроса, хотя и простого)
- Если вы используете Rails, вам повезет с предстоящим Rails 4 Live, см. этот пост и демонстрацию для получения сочных деталей