2016-03-23 7 views
0

Для больших проектов предпочтительным является ui-router. Но главное преимущество, которое он дает, - это вложенный вид. Но это может быть достигнуто и с помощью ng-view. Итак, какой из них выбрать?Что лучше ng-view или ui-view?

+0

См. Этот пост http://stackoverflow.com/a/21024270/6521116 –

ответ

12

Используйте ui-router, потому что он намного лучше, чем собственный ng-view (вложенные представления ...). Кроме того, AngularJS будет реализовывать множество функций, которые ui-router имеет в Angular 2.0.

AngularJS 2.0 Router Design Document

Почему вы должны использовать UI-маршрутизатором

Несколько Просмотров

Большинство приложений могут быть разбиты на регионы. Как минимум, приложения обычно имеют заголовок, основную область содержимого и нижний колонтитул. В большинстве случаев все эти области (виды) отображаются на странице одновременно. С помощью встроенного маршрутизатора AngularJS ngRoute разрешено только одно представление (ng-view) на странице. Это ограничение заставляет пользователей использовать (ng-include) или другие обходные пути для создания макета или главной страницы для их приложения. UI-Router поддерживает несколько видов, и каждый может иметь собственный контроллер, чтобы каждый из этих регионов мог быть инкапсулирован и повторно использован во всем приложении, если это необходимо.

Вложенные просмотров

Общий пример вложенного зрения в приложениях является мастер/деталь или, более конкретно, список/страницу с деталями. Во многих приложениях отображается список элементов, а затем, когда вы нажимаете на элемент, вы видите детали для этого элемента. Взяв этот пример дальше, вы можете щелкнуть ссылку редактирования, когда просмотрите детали элемента, которые перейдут к редактируемой форме для элемента.

Этот сценарий легко достигается с помощью встроенного маршрутизатора AngularJS, ngRoute, если список и детали указаны на отдельных страницах (или представлениях, поскольку они вызываются в AngularJS). Однако, если вы хотите, чтобы список оставался на странице, пока вы показываете детали справа или ниже списка, это становится более сложным. Чтобы быть ясным, это требование может быть достигнуто с помощью ngRoute путем совместного использования одного представления с двумя контроллерами: один для списка и один для подробностей, а также скрытие и отображение деталей по мере необходимости. Результат не идеален, потому что мы хотели бы, чтобы список и детали каждого из них имели свой собственный контроллер и отображали только одну ответственность (отображая список или отображая детали элемента). Инкапсулируя эти области пользовательского интерфейса в своем собственном представлении, мы можем иметь более гибкий пользовательский интерфейс, который позволяет нам объединять фрагменты или разбить их по мере необходимости для удовлетворения требований. Вложенные представления позволяют нам не только одновременно совмещать эти взгляды, но также и открывать вид внутри другого вида.

+0

Спасибо Рассел .. Был бы если у вас была достаточно репутации –

+0

@HiteshBasera ха-ха круто ...... –