Прямо сейчас у меня есть ресурс providers
, и у меня index
, и у меня есть route 'show'
для него, а также несколько маршрутов, называемых несколькими другими маршрутами, для перечисления разных пользователей. Вот полный файл router.coffee
Router.map ->
@resource 'admin', ->
@resource 'admin.providers', { path: '/providers' }, ->
@route 'show'
@route 'unapproved'
@route 'approved'
@route 'pending'
Дело в том, что index
- это просто комбинация неутвержденных, одобренных и ожидающих рассмотрения страниц, и каждая из них извлекается с использованием одной модели с разными type
аргументами.
Моим первоначальным направлением настройки было создание компонентов (пытаясь делать что-то в стиле Ember 2.0 и избегать всех представлений), поэтому я создал unapproved-pro
, approved-pro
и так далее, которые использовали ember-table
для отображения вещей в таблице. Я думал, что сделаю эти компоненты самодостаточными, чтобы они извлекали данные, получали следующую страницу, а также другие действия (например, удаление или обновление)
Теперь, прочитав вокруг (http://discuss.emberjs.com/t/how-to-make-ember-component-fetch-data-from-server-put-ajax-call-inside-the-компонент-кажется-не-хорошая-практика-обрабатывать-это/6984), мне нужно снабдить компоненты моделями и также сохраните логику нумерации страниц и других действий в контроллерах. Что нормально. Вот в чем проблема;
Моя индексная страница является копией unapproved
и approved
страниц. За исключением, возможно, количества видимых в таблице строк. Если я поставлю определенную логику, например «одобрить» provider
, тогда мне придется проделать эту логику как для контроллера index
, так и для контроллера pending
. Как я могу поделиться этими функциями, сохранив при этом СУХОЙ?
Небольшое замечание: изначально я думал, что смогу создать автономные компоненты, которые будут обрабатывать все эти действия. Таким образом, все, что связано с unapproved_pro
, будет автономно в этом компоненте, чтобы я мог поместить его куда угодно. И я все еще думаю, что это могут быть допустимые варианты.
Этот вопрос был размещен на странице обсуждения ember по адресу http://discuss.emberjs.com/t/sharing-common-functionality-between-two-controllers/7632