Каков наилучший способ иметь динамический нижний колонтитул, который может быть запущен из нескольких мест с помощью AngularJS
Так что я ходил по кругу, пытаясь найти наилучший способ создать нижний колонтитул со скрытой панелью для действий, которая выдвигается вверх. Сайт довольно простой, у него есть заголовок, область контента и нижний колонтитул. Я сделал простой каркас, чтобы объяснить это немного проще:
Таким образом, в идеале панель контента, скажем, что-то вроде сообщений, при нажатии я хотел бы открыть Secondary actions panel
с формой редактирования, предварительно заполненной данными из панели содержимого. Если Icon
нажал бы, я хотел бы, чтобы тот же Secondary actions panel
с пустым добавить новую форму сообщения. Где я борюсь с этим, так это соглашение о том, как это сделать и что лучше с помощью AngularJS. Панель вторичных действий и нижний колонтитул обернуты в FooterController
, но панели содержимого обернуты в отдельный контроллер. Я не уверен, должен ли я использовать директиву или сервис.
Я в настоящее время использую angular-ui-router
но это не управляет событиями пользовательского интерфейса, которые мне нужны.
Буду очень признателен за любой совет, я очень хорошо знаю AngularJS, поэтому я пытаюсь научиться правильному способу работы с AngularJS, а не просто создавать какую-то хакерскую ерунду, которую я в конечном итоге выброшу!
Спасибо!
1 ответ
Я думаю, что вторичная панель должна иметь свое собственное представление пользовательского интерфейса (со своим собственным контроллером) вместо того, чтобы оставаться внутри нижнего колонтитула.
Чтобы узнать, по какому элементу щелкнули, вы можете пройти через состояние ui-router.
Допустим, ваша панель управления имеет почтовый идентификатор 1234, тогда она должна иметь ui-sref="stateName({postId: post.id})"
И это состояние в ui-router будет определять, какой контроллер / шаблон он должен запускать, а внутри этого контроллера вы можете получить идентификатор от $stateParams.postId
Затем вы можете использовать идентификатор сообщения, чтобы получить сообщение удаленно или из службы, если вы сохранили их ранее.