Spec-Zone.ru › Angular.js 1.5

Улучшить эту документацию Посмотреть исходный код ngController

  1. директива в модуле ng

Директива ngController прикрепляет класс контроллера к представлению. Это ключевой аспект того, как Angular поддерживает принципы шаблона проектирования Model-View-Controller.

Компоненты MVC в Angular:

  • Модель — Модели — это свойства области видимости; области видимости прикреплены к DOM, где свойства области видимости доступны через привязки.
  • Представление — Шаблон (HTML с привязками данных), который отображается в представлении.
  • Контроллер — Директива ngController определяет класс контроллера; класс содержит бизнес-логику приложения для украшения области видимости функциями и значениями

Обратите внимание, что вы также можете прикрепить контроллеры к DOM, объявив их в определении маршрута через сервис $route. Распространённая ошибка — повторное объявление контроллера с помощью ng-controller в самом шаблоне. Это приведёт к тому, что контроллер будет прикреплён и выполнен дважды.

Информация о директиве

  • Эта директива создаёт новую область видимости.
  • Эта директива выполняется на уровне приоритета 500.

Использование

  • как элемент: (Эта директива может использоваться как пользовательский элемент, но следует учитывать ограничения IE).
    <ng-controller
      ng-controller="expression">
    ...
    </ng-controller>
  • как атрибут:
    <ANY
      ng-controller="expression">
    ...
    </ANY>

Аргументы

Параметр Тип Подробности
ngController expression

Имя функции-конструктора, зарегистрированной в текущем $controllerProvider, или выражение, которое в текущей области видимости вычисляет функцию-конструктор.

Экземпляр контроллера может быть опубликован в свойство области видимости, указав ng-controller="as propertyName".

Если текущий $controllerProvider настроен на использование глобальных переменных (через $controllerProvider.allowGlobals()), это также может быть имя глобально доступной функции-конструктора (не рекомендуется).

Вот простая форма для редактирования контактной информации пользователя. Добавление, удаление, очистка и приветствие — это методы, объявленные в контроллере (см. вкладку исходный код). Эти методы легко вызываются из углового разметки. Любые изменения в данных автоматически отражаются в представлении без необходимости ручного обновления.

Ниже приведены два различных стиля объявления:

  • один связывает методы и свойства напрямую с контроллером, используя this: ng-controller="SettingsController1 as settings"
  • один вводит $scope в контроллер: ng-controller="SettingsController2"

Второй вариант более распространён в сообществе Angular и обычно используется в шаблонах и в этом руководстве. Однако существуют преимущества привязки свойств напрямую к контроллеру и избегания области видимости.

  • Использование controller as делает очевидным, к какому контроллеру вы обращаетесь в шаблоне, когда к элементу применяются несколько контроллеров.
  • Если вы пишете контроллеры как классы, у вас есть более лёгкий доступ к свойствам и методам, которые появятся в области видимости, изнутри кода контроллера.
  • Поскольку в привязках всегда есть ., вам не нужно беспокоиться о том, как прототипическое наследование маскирует примитивные типы.

Этот пример демонстрирует синтаксис controller as.

Этот пример демонстрирует стиль "прикрепление к $scope" контроллера.

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ng/directive/ngController

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API