2015-07-23 2 views
0

У меня была интересная дискуссия с одним из моих коллег. Мы строим сложный пользовательский интерфейс с использованием угловым, у нас есть 2 разных подходовПравильный способ структурирования страницы в угловом

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

Я ищу дополнительные варианты и/или мнения о двух подходах, упомянутых выше.

ответ

3

заказ Угловая руководство Стиль Джон Papa руководство https://github.com/johnpapa/angular-styleguide

Этот стиль содержит все лучшие практики, которые вы должны знать о AngularJS

+0

Возможно, я пропустил что-то очевидное в руководстве. Можете ли вы уточнить, какое правило (ы) можно применить к моему делу? –

+0

Разделите свои функции приложений на компоненты, которые могут быть подключены к приложению по мере необходимости. Это снижает сложность вашего приложения. Он поддерживает модульное тестирование каждого компонента, а также обслуживание не будет болезненным. Также попробуйте передать значения от родительского к дочернему компоненту, а не наоборот. Это также поможет вам перейти на Angular 2, если вы хотите это сделать. –

1

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

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