Spec-Zone.ru › Angular.js 1.7

Улучшить эту документацию Просмотреть исходный код $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)=} – Функция контроллера, которая должна быть связана с недавно созданным scope или имя зарегистрированного контроллера, если передано в виде строки.
    • controllerAs – {string=} – Имя идентификатора для ссылки на контроллер. Если присутствует, контроллер будет опубликован в scope под именем 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 будет доступна в scope маршрута под $resolve (по умолчанию) или под пользовательским именем, указанным свойством resolveAs (см. ниже). Это может быть особенно полезно при работе с компонентами в качестве шаблонов маршрута.

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

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

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

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

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

      Маршруты, которые указывают redirectTo не будут вызывать контроллеры, функции шаблонов или resolves, $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 транслируется в корневом scope (без перезагрузки маршрута).

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

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

      Примечание: Эта опция не имеет эффекта, если 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–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ngRoute/provider/$routeProvider

Spec-Zone.ru

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