Контроллер и директива AngularJs, правильный путь?

Я читал более подробно о директиве и контроллере angularjs, что должно быть в одном и том же. Ситуация такова: у меня есть несколько людей с их типами -> полицейские, медицина, юристы ... и т. Д. Внутри приложения панели администратора, где администратор может ими управлять. В одном разделе администратор может создавать, редактировать и удалять их. Текущий контроллер версий выполняет почти всю работу: UI (создание правильной формы, скрытие других форм ...) и логика (удаление, создание, обновление методов для каждого типа пользователя). Насколько я понимаю, это нехорошо, потому что контроллер делает несколько вещей (нет единой ответственности). И даже дальше контроллер должен привязывать значения только к области видимости.

Но значит ли это, что я должен только вытащить всех людей (внутри контроллера) и передать им какую-то ведущую директиву, которая будет управлять всем этим? Или они должны быть более директивы внутри директив, чтобы разделить ответственность?

И если это так, то контроллер должен будет использовать ту же службу, что и директива / директивы. Контроллер для вытаскивания людей из back-end) и директивы / директивы (для создания / обновления / удаления) - это DRY?

angularjs,

0

Ответов: 1


1 принят

Без кода трудно дать точный ответ, но общая идея при работе с угловым заключается в следующем:

  • Контроллер: Контроллер отвечает за то, чтобы обновлять представления со всеми изменениями, происходящими во всем приложении. Это означает, что он не должен содержать бизнес-логику, поэтому эту логику следует разделить на небольшие службы. Каждая обработка различных частей логики для вашего приложения.

  • Служба: Как указано выше, служба должна содержать вашу бизнес-логику. Это означает, что тяжелые вычисления, манипуляции и т. Д. Должны быть введены в сервис. Поскольку сервисы - это сингллеты, вы можете легко внедрить эту службу в любом месте и повторно использовать логику внутри нее, чего вы не можете сделать, если поместите свою логику в контроллер.

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

Чтобы ответить на это:

И если это так, то контроллер должен будет использовать ту же службу, что и директива / директивы. Контроллер для вытаскивания людей из back-end) и директивы / директивы (для создания / обновления / удаления) - это DRY?

Если у вас есть данные, привязанные к контроллеру, вам необязательно нужна директива для обработки операций CRUD. Поскольку данные привязаны к контроллеру, вы можете легко создать шаблон, который автоматически реагирует на изменения данных ng-repeat, ng-ifи так далее.

AngularJS,
Похожие вопросы