Подтвердить что ты не робот

Emberjs, сторона сервера на стороне клиента, все в?

Я изучал Ember.js, и это выглядит действительно замечательно, но одна вещь, которая касается меня, и что я не могу обдумать ее, если я начну использовать его в уже запущенном проекте.

В конечном итоге мне придется переместить все клиентскую сторону и сделать мое приложение одностраничным приложением в какой-то момент?

Позвольте мне уточнить...

Пока лучший способ связи между клиентом и сервером с помощью Ember - это REST. и это выглядит великолепно, но мне не нравится, что все шаблоны загружены в первый раз. и перемещение всей логики на моем сервере клиенту (или я получаю все это неправильно?), потому что похоже, что моя серверная сторона станет логическим REST API.

Кроме того, я использую Yii Framework, в котором есть некоторые компоненты с поддержкой JavaScript (Ajax), такие как сетки, как я могу использовать ember со всем этим на navigation, не переписывая кучу материала, уже работающего над моим приложением?

Я нахожусь на странице входа (или состоянии), а затем после входа в систему мне нужно отобразить grid, что просто с Yii, и полную загрузку страницы, но если я использую Ember, как я могу отображать сетку, как обычно? мне нужно предварительно загрузить шаблон руля для сетки, а также JavaScript, который его контролирует?

4b9b3361

Ответ 1

Нет, вы не должны перемещать все на клиентскую сторону, особенно проверку подлинности и проверку, которые можно обойти иначе.

То, что вы переместили в Emberjs, - это yii-s Просмотр части MVC, контроллер выдаст i.e JSON.

Затем данные передаются в модель Embers Model через Ember routing и контроллеры и т.д.

Поскольку вы заменяете логику представления Yii на ember, вам не следует использовать классы Yii UI, такие как CGridView. Смешивание их возможно, но это не кажется хорошей идеей. Вы должны управлять своим в Ember.

http://www.yiiframework.com/wiki/409/ember-js-with-yii-rest-backend-demo-application/

Ответ 2

Просто добавьте перспективу Yii. Многие "магии" представлений/списков сетки происходят в поставщике данных (для сложного поиска, сортировки и фильтрации), а также с помощью данных, отформатированных с помощью парсированных полей на моделях.

Таким образом, вы можете использовать одну и ту же концепцию на стороне сервера и просто выводить конечный JSON, разбитый на страницы и все, из вашего собственного виджета; или даже просто переопределить представление сетки и вывести json вместо представления после обработки данных/конфигурации.

Как только вы используете JSON, а не HTML, очень легко реплицировать переднюю часть сетки, там действительно не так много функций.

Это может быть не идеальным, но это означает, что вам не нужно перемещать всю логику для разбивки на страницы, поиска и фильтрации на стороне клиента.

TL; DR;
Переопределите виджеты Yii, для которых у вас уже есть встроенная функциональность, и используйте их для вывода JSON, а не HTML.

Ответ 3

По моему опыту, вы можете просто получить доступ к существующим контроллерам и действиям (cli или http) с вашим сервером JS. Я сделал то же самое с моим существующим приложением, которое интегрировано с node.js.

Преимущество этого заключается в том, что вы можете сохранить код exisitng как резерв для браузеров, не полностью поддерживающих ваши новые реализации или для поисковых роботов, которые, в первую очередь, отлично работают с javascript.

Я написал все приложение в моих моделях, я имею в виду управление данными и т.д., фактическая функциональность - в командах. И если браузер не поддерживается или отключает javascript, все возвращается к нормальному пути с привязками и загрузками страниц, используя UrlManager и фактические контроллеры и действия. Эти контроллеры просто выполняют вызов команд. Конечно, с помощью хелпера, преобразующего вывод json в используемые данные для представлений.

И загрузка страницы с просмотрами php и контроллеров по умолчанию все равно, так как она уже существует.