То, что я пытаюсь создать, - это SPA, содержащий несколько вариантов выбора на одной странице, где каждый выбор имеет свою собственную модель. Выбор различных параметров в полях выбора может отображать/скрывать другие поля на странице и изменять данные для других вариантов выбора (загружать разные наборы). Наконец, параметры в двух вариантах выбора могут изменить URL-адрес (поэтому, когда страница загружается с правильным адресом, эти два параметра будут предварительно выбраны). Теперь мне интересно, что будет лучшим подходом здесь.
Первый. Стоит ли в этом случае переходить на ui-router?
Второй. Мне нужно написать пользовательскую директиву для этого выбора, которая будет иметь следующую функциональность
- сбор данных о загрузке
- отображать данные и запоминать выбор
- перезагрузить сбор данных, когда другой выбор вызвал его
- перезагрузить данные для других вариантов
Теперь я писал директивы раньше, но никогда ничего такого (я думаю) сложного. Вот почему у меня возникает мало вопросов.
Как я могу связать разные данные с моей директивой? Должна ли это быть просто одна массивная сложная директива или разделить ее на более мелкие части (например, одна директива для отображения закрытого окна выбора, а другая — для отображения списка и т. д.)? Как я могу вызвать событие, когда данные должны быть изменены, и прослушать подобное событие из другого выбора. Через контроллер?
Заранее спасибо за вашу помощь.