Лучшая практика для повторного использования одного файла представления для нескольких страниц с немного отличающимся содержанием - PullRequest
0 голосов
/ 04 июня 2019

Если у вас есть файл представления, который вы хотите повторно использовать для разных страниц, например, с немного разными заголовками страниц, существует ли «лучший подход» из трех приведенных ниже?(Принимая во внимание разделение интересов, бизнес / логику представления и т. Д.)

Например, если у меня одна и та же страница «Какой ваш адрес», но для ряда различных типов учетных записей, например, благотворительный счет, личный счет, бизнес-аккаунт и т. д., для которых требуются разные заголовки страниц соответственно.

(a) Передайте определенный заголовок страницы в контроллерах

  • CharityAccountController: return h.view({ pageHeading: "What is the charity's registered address?"})
  • PersonalAccountController: return h.view({ pageHeading: "What is your address?"})
  • Просмотреть файл: <pageHeading>{{ pageHeading }}</pageHeading>

(b) Передать флаг типа учетной записи в контроллере и иметь некоторую условную логику в представлении для установкизаголовок:

  • CharityAccountController: return h.view({ isCharityAccount: true })
  • PersonalAccountController: return h.view({ isPersonalAccount: true })
  • Просмотр файла: <pageHeading> { if isCharityAccount } What is the charity's registered address? { else if isPersonalAccount } What is your address? { else … } </pageHeading>

(c) Используйте отдельные файлы представления для каждой страницы, максимально абстрагируясь от общих «partials»

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

...