Spec-Zone.ru › Angular.js 1.8

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

  1. $route
  2. поставщик в модуле ngRoute

Обзор

Используется для настройки маршрутов.

См. $route для примера настройки и использования ngRoute.

Зависимости

Требуется модуль ngRoute для установки.

Методы

  • when(path, route);

    Добавляет новое определение маршрута к сервису $route.

    Параметры

    Параметр Тип Подробности
    path string

    Путь маршрута (сопоставляется с $location.path). Если $location.path содержит избыточный конечный слэш или его нет, маршрут все равно будет соответствовать, и $location.path будет обновлен для добавления или удаления конечного слэша для точного соответствия определению маршрута.

    • path может содержать именованные группы, начинающиеся с двоеточия: например, :name. Все символы до следующего слэша сопоставляются и хранятся в $routeParams под указанным name при совпадении маршрута.
    • path может содержать именованные группы, начинающиеся с двоеточия и заканчивающиеся звездочкой: например, :name*. Все символы жадно хранятся в $routeParams под указанным name при совпадении маршрута.
    • path может содержать необязательные именованные группы с вопросительным знаком: например, :name?.

      Например, маршруты, такие как /color/:color/largecode/:largecode*\/edit будут соответствовать /color/brown/largecode/code/with/slashes/edit и извлекать:

    • color: brown

    • largecode: code/with/slashes.
    route Object

    Информация о сопоставлении, которая должна быть назначена $route.current при совпадении маршрута.

    Свойства объекта:

    • controller – {(string|Function)=} – Функция контроллера, которая должна быть связана с вновь созданным объемом или именем зарегистрированного контроллера, если передано в виде строки.
    • controllerAs – {string=} – Идентификатор имени для ссылки на контроллер. Если он присутствует, контроллер будет опубликован в объеме под именем controllerAs.
    • template – {(string|Function)=} – html-шаблон в виде строки или функция, возвращающая html-шаблон в виде строки, который должен использоваться директивами ngView или ngInclude. Это свойство имеет приоритет над templateUrl.

      Если template является функцией, она будет вызвана со следующими параметрами:

      • {Array.<Object>} - параметры маршрута, извлеченные из текущего $location.path() с помощью текущего маршрута

      Требуется один из template или templateUrl.

    • templateUrl – {(string|Function)=} – путь или функция, возвращающая путь к html-шаблону, который должен использоваться директивами ngView.

      Если templateUrl является функцией, она будет вызвана со следующими параметрами:

      • {Array.<Object>} - параметры маршрута, извлеченные из текущего $location.path() с помощью текущего маршрута

      Требуется один из templateUrl или template.

    • resolve - {Object.<string, Function>=} - Необязательное отображение зависимостей, которые необходимо ввести в контроллер. Если какие-либо из этих зависимостей являются обещаниями, маршрутизатор будет ждать, пока все они будут разрешены или одно будет отклонено, прежде чем контроллер будет создан. Если все обещания успешно разрешены, значения разрешенных обещаний вводятся, и событие $routeChangeSuccess срабатывает. Если любое из обещаний отклонено, срабатывает событие $routeChangeError. Для более удобного доступа к разрешенным зависимостям из шаблона карта resolve будет доступна в объеме маршрута под именем $resolve (по умолчанию) или пользовательским именем, указанным свойством resolveAs (см. ниже). Это может быть особенно полезно при работе с компонентами в качестве шаблонов маршрутов.

      Примечание: Если ваш объем уже содержит свойство с этим именем, оно будет скрыто или перезаписано. Убедитесь, что вы указали соответствующее имя для этого свойства, которое не конфликтует с другими свойствами в объеме.
      Карта объекта:
      • key – {string}: имя зависимости, которая должна быть введена в контроллер.
      • factory - {string|Function}: Если string, тогда это псевдоним сервиса. В противном случае, если функция, то она вводится, и возвращаемое значение обрабатывается как зависимость. Если результат является обещанием, оно разрешается, прежде чем его значение вводится в контроллер. Учтите, что ngRoute.$routeParams по-прежнему будет ссылаться на предыдущий маршрут в этих функциях разрешения. Используйте $route.current.params для доступа к параметрам нового маршрута.
    • resolveAs - {string=} - Имя, под которым карта resolve будет доступна в области видимости маршрута. Если опущено, по умолчанию используется $resolve.

    • redirectTo – {(string|Function)=} – значение для обновления пути $location и запуска перенаправления маршрута.

      Если redirectTo является функцией, она будет вызвана со следующими параметрами:

      • {Object.<string>} - параметры маршрута, извлеченные из текущего $location.path() с помощью текущего шаблона URL маршрута.
      • {string} - текущий $location.path()
      • {Object} - текущий $location.search()

      Пользовательская функция redirectTo должна возвращать строку, которая будет использоваться для обновления $location.url(). Если функция вызывает ошибку, дальнейшая обработка не будет выполняться, и событие $routeChangeError будет запущено.

      Маршруты, которые указывают redirectTo не будут вызывать свои контроллеры, функции шаблонов или разрешения, $location будет изменен на URL перенаправления, и обработка маршрута остановится. Исключение из этого правила — если redirectTo является функцией, которая возвращает undefined. В этом случае переход по маршруту происходит так, как будто никакого перенаправления не было.

    • resolveRedirectTo – {Function=} – функция, которая (в конечном итоге) вернет значение для обновления URL $location и запуска перенаправления маршрута. В отличие от redirectTo, зависимости могут быть введены в resolveRedirectTo и возвращаемое значение может быть строкой или обещанием, которое будет разрешено до строки.

      Подобно redirectTo, если возвращаемое значение является undefined (или обещанием, которое разрешается до undefined), перенаправления не происходит, и переход по маршруту происходит так, как будто никакого перенаправления не было.

      Если функция вызывает ошибку или возвращенное обещание отклоняется, дальнейшая обработка не будет выполняться, и событие $routeChangeError будет запущено.

      redirectTo имеет приоритет над resolveRedirectTo, поэтому указание обоих в одном определении маршрута приведет к игнорированию последнего.

    • [reloadOnUrl=true] - {boolean=} - перезагрузить маршрут, когда любая часть URL меняется (включая путь), даже если новый URL отображается на тот же маршрут.

      Если параметр установлен в false и URL в браузере изменяется, но новый URL отображается на тот же маршрут, то событие $routeUpdate транслируется в корневом объеме (без перезагрузки маршрута).

    • [reloadOnSearch=true] - {boolean=} - перезагрузить маршрут, когда изменяется только $location.search() или $location.hash().

      Если параметр установлен в false и URL в браузере изменяется, то событие $routeUpdate транслируется в корневом объеме (без перезагрузки маршрута).

      Примечание: Этот параметр не имеет эффекта, если reloadOnUrl установлен в false.
    • [caseInsensitiveMatch=false] - {boolean=} - сопоставлять маршруты без учета регистра

      Если параметр установлен в true, то конкретный маршрут может сопоставляться без учета регистра

    Возвращает

    Object

    self

  • otherwise(params);

    Устанавливает определение маршрута, которое будет использоваться при изменении маршрута, когда ни одно другое определение маршрута не соответствует.

    Параметры

    Параметр Тип Подробности
    params Objectstring

    Информация о сопоставлении, которая должна быть назначена $route.current. Если используется строка, значение сопоставляется с redirectTo.

    Возвращает

    Object

    self

  • eagerInstantiationEnabled([enabled]);

    Вызовите этот метод как установщик для включения/выключения предвзятой инициализации сервиса $route при запуске приложения. Также вы можете вызвать его как getter (т.е. без аргументов) для получения текущего значения флага eagerInstantiationEnabled.

    Инициализация $route заранее необходима для захвата начального события $locationChangeStart и перехода к соответствующему маршруту. Обычно $route инициализируется вовремя директивой ngView. Однако, в случаях, когда ngView включено в асинхронно загружаемом шаблоне (например, в шаблоне другой директивы), фабрика директивы может не быть вызвана достаточно рано для того, чтобы $route была инициализирована *до* срабатывания начального события $locationChangeSuccess. Предварительная инициализация гарантирует, что $route всегда будет инициализирована вовремя, независимо от того, когда ngView будет загружено.

    Значение по умолчанию — true.

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

    Параметры

    Параметр Тип Подробности
    enabled
    (необязательно)
    boolean

    Если указано, обновите внутренний флаг eagerInstantiationEnabled.

    Возвращаемое значение

    *

    Текущее значение флага eagerInstantiationEnabled при использовании как getter или само значение (для цепочки) при использовании как setter.

Свойства

  • caseInsensitiveMatch

    Логическое свойство, указывающее, следует ли сопоставлять маршруты, определенные с помощью этого поставщика, с использованием алгоритма, не чувствительного к регистру. По умолчанию false.

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ngRoute/provider/$routeProvider

Spec-Zone.ru

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