В платформе, которую я создаю, есть пользователи, с которыми вы можете следить или отменить подписку. Кроме того, если вы просматриваете свой профиль, вы можете его отредактировать (а не следовать ему).Профиль пользователя Публичный и закрытый профиль пользователя в AngularJS
В настоящее время у меня есть один штат/профиль /: идентификатор, который отображает профиль пользователя с angularjs
У меня есть один шаблон _profile.html и контроллер profileCrtl. Контроллер отвечает за проверку подлинности профиля и, следовательно, для установки разных переменных для отображения разных тегов HTML. Например, если пользователь видит свой профиль, мы не будем показывать следующую кнопку. Вместо этого он/она увидит кнопку редактирования, позволяющую пользователю редактировать свой профиль.
Проблема с этим подходом заключается в том, что porfileCtrl и _profile.html отвечают за , что позволяет управлять общедоступным профилем пользователя и видом личного профиля, и я думаю, что это не очень хороший шаблон дизайна.
Я рассматриваю три решения, чтобы улучшить мой код:
Чтобы использовать два шаблона, _publicProfile и _privateProfile и оставить только один контроллер profileCtrl. У нас будет два состояния.
Чтобы использовать два шаблона, _publicProfile и _privateProfile и иметь два контроллера. profilePublicCtrl и profilePrivateCtrl. (Я считаю, что это может быть лучшим решением). У нас будет два состояния.
Чтобы иметь только одно состояние и изменить templateUrl динамически, если пользователь является аутентифицированным пользователем или публичным пользователем.
Как вы думаете, а лучшее решение? Есть ли у вас альтернатива тем, которые были рассмотрены выше? Когда и где код должен ли я проверять, является ли профиль, просматриваемый пользователем, общедоступным профилем или профилем пользователя?
Я уже искал много ответов в Интернете, и, похоже, много мнений, и мне трудно понять, что является лучшим шаблоном дизайна.
Нет «лучшего подхода». Вы решаете, нужно ли вам 2 шаблона или 1 с некоторым ng-if. Больше ничего не сказал. –
Я не думаю, что это очень безопасно, если клиентский код контролирует доступ к частной информации. – Fuhrmanator
Фантастический минус, и я не могу удалить сообщение. –