Если у вас есть файл представления, который вы хотите повторно использовать для разных страниц, например, с немного разными заголовками страниц, существует ли «лучший подход» из трех приведенных ниже?(Принимая во внимание разделение интересов, бизнес / логику представления и т. Д.)
Например, если у меня одна и та же страница «Какой ваш адрес», но для ряда различных типов учетных записей, например, благотворительный счет, личный счет, бизнес-аккаунт и т. д., для которых требуются разные заголовки страниц соответственно.
(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»
. Также могут быть другие элементы страницы, специфичные для типов учетных записей, например текст подсказки, сообщения об ошибках проверки.А некоторые элементы могут потребоваться показать / скрыть в зависимости от типа учетной записи.