Angular: должен ли холст HTML быть компонентом или службой? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть базовое приложение для рисования, которое реализует MVC-фреймворк в Javascript (на самом деле ts), и я хотел бы перенести его в Angular. У меня есть модель для обработки данных, вид для рисования фигур на холсте и контроллер для обновления модели и компонентов вида. При портировании на Angular кажется очевидным, что модель должна быть сервисной. Однако, похоже, что контроллер должен быть компонентом с: 1) представлением в качестве подкомпонента (без какого-либо фактического HTML, так как он просто берет компонент HTML-холста и запускается вместе с ним) или службой. Какой лучший / типичный подход в этом случае?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Возможно, вы слышали о MVC (контроллере вида модели) или MVVC (контроллере вида модели)

Служба по существу выполняет роль модели и должна выполнять тяжелую работу.

Представление отображает вещи, которые вам, кажется, здесь не нужны, кроме, возможно, тега div для привязки холста.

Контроллер обеспечивает легкую связь между сервисом и представлением.

Учитывая, что у вас на самом деле нет представления, вам будет намного лучше использовать директиву атрибута (директива AKA). Думайте о директиве как о компоненте без представления.

Возможно, вы можете использовать службу в сочетании с директивой атрибута, хотя я никогда не пробовал этого, и документы, кажется, не покрывают это, но это очень просто, используя DI (внедрение зависимостей) через конструктор.

Вот документы для директивы атрибута:

https://angular.io/guide/attribute-directives

Обратите внимание, что документ официально является компонентом типа директивы, но редко упоминается как таковой в повседневном использовании.

0 голосов
/ 06 сентября 2018

Должен ли холст HTML быть Компонентом или Сервисом?

Компонент. HTML / рендеринг на экран имеет смысл как компонент.

...