2013-04-26 3 views
3

[EDIT]angularjs: вкладки вида конструкции выпуск

Похожий вопрос на Complex nesting of partials and templates

В настоящее время, это лучше использовать угловой-UI состояние раствор или я должен придерживаться нг-включают в себя?


До сих пор у меня было одно представление для каждого URL-адреса в приложении AngularJS. Мне нужно создать новое представление, которое должно иметь 3 вкладки, и у меня возникают проблемы, пытаясь понять, как я собираюсь создать представление - архитектура-то, что есть.

Обратите внимание, что объект бизнес-модели за этими 3 вкладками является одним и тем же.

Первая вкладка предназначена для просмотра и редактирования данных на бизнес-объекте. Итак, это уже два «представления» в первой вкладке.

Вторая вкладка предназначена для просмотра выведенной таблицы, отображающей данные из дочерней коллекции бизнес-объекта.

Третья вкладка делает то же самое, что и вторая, но для другой дочерней коллекции.

Очевидно, что я не хочу загружать весь бизнес-объект сразу. Я загружу коллекции только в том случае, если пользователь перейдет на 2 или 3 вкладки.

Моя главная проблема сейчас в том, как я собираюсь организовать представления? У AngularJS есть это ограничение только на 1 просмотр на страницу.

Кроме того, мне нужно обрабатывать историю браузера, поэтому URL-адрес должен быть изменен при выборе вкладки, но мне нужно перезагрузить любые данные (т. Е. Я не должен перезагружать контроллер).

Любые советы были бы высоко оценены.

+0

Вы можете использовать ng-show, ng-hide, ng-include и т. Д., Чтобы отображать скрытый контент на основе определенных переменных. они могут быть установлены на основном контроллере при изменении маршрута. в отношении контроллера вы можете позволить контроллеру перезагрузить, просто добавить кеш ваших объектов и не загружать их снова, если они загружены. – Ketan

+0

А как насчет вида? HTML для формы редактирования уже довольно большой. Если бы у меня было больше (то есть вкладки и их содержимое), это будет очень большим. Как я могу отделить html из 3 вкладок? – Sam

+0

помещают каждый в свой собственный html-файл. используйте ng-include с URL-адресом. ng-include можно использовать с ng-show/ng-hide. – Ketan

ответ

2

Для записи я закончил использование ui-router и его управления состоянием, что является удивительным. Мне потребовалось немного времени, чтобы понять концепции и применить это на практике, но мне удалось создать довольно сложный набор макетов без особых усилий!

+0

Я страдаю от того же «барьера для входа»; Мне сложно понять невозможность действительно повторно использовать представления через собственную маршрутизацию, а не нарушать DRY, вызвав ng-include на каждый шаблон, который может иметь общую схему навигации, которая также управляется Angular. – thinice

Смежные вопросы