$state

service in module ui.router.state

Description

$state service is responsible for representing states as well as transitioning between them. It also provides interfaces to ask for current state or even states you're coming from.

Dependencies

Methods

  • get(stateOrName, context)

    Returns the state configuration object for any specific state or all states.

    Parameters
    Param Type Details
    stateOrName

    (optional)
    stringobject

    (absolute or relative) If provided, will only get the config for the requested state. If not provided, returns an array of ALL state configs.

    context

    (optional)
    stringobject

    When stateOrName is a relative state reference, the state will be retrieved relative to context.

    Returns
    Object|Array

    State configuration object or array of all objects.

  • go(to, params, options)

    Convenience method for transitioning to a new state. $state.go calls $state.transitionTo internally but automatically sets options to { location: true, inherit: true, relative: $state.$current, notify: true }. This allows you to easily use an absolute or relative to path and specify only the parameters you'd like to update (while letting unspecified parameters inherit from the currently active ancestor states).

    Parameters
    Param Type Details
    to string

    Absolute state name or relative state path. Some examples:

    • $state.go('contact.detail') - will go to the contact.detail state
    • $state.go('^') - will go to a parent state
    • $state.go('^.sibling') - will go to a sibling state
    • $state.go('.child.grandchild') - will go to grandchild state
    params

    (optional)
    object

    A map of the parameters that will be sent to the state, will populate $stateParams. Any parameters that are not specified will be inherited from currently defined parameters. This allows, for example, going to a sibling state that shares parameters specified in a parent state. Parameter inheritance only works between common ancestor states, I.e. transitioning to a sibling will get you the parameters for all parents, transitioning to a child will get you all current parameters, etc.

    options

    (optional)
    object

    Options object. The options are:

    • location - {boolean=true|string=} - If true will update the url in the location bar, if false will not. If string, must be "replace", which will update url and also replace last history record.
    • inherit - {boolean=true}, If true will inherit url parameters from current url.
    • relative - {object=$state.$current}, When transitioning with relative path (e.g '^'), defines which state to be relative from.
    • notify - {boolean=true}, If true will broadcast $stateChangeStart and $stateChangeSuccess events.
    • reload (v0.2.5) - {boolean=false}, If true will force transition even if the state or params have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd use this when you want to force a reload when everything is the same, including search params.
    Returns
    promise

    A promise representing the state of the new transition.

    Possible success values:

    • $state.current

    Possible rejection values:

    • 'transition superseded' - when a newer transition has been started after this one
    • 'transition prevented' - when event.preventDefault() has been called in a $stateChangeStart listener
    • 'transition aborted' - when event.preventDefault() has been called in a $stateNotFound listener or
      when a $stateNotFound event.retry promise errors.
    • 'transition failed' - when a state has been unsuccessfully found after 2 tries.
    • resolve error - when an error has occurred with a resolve

    Example

    1. var app = angular.module('app', ['ui.router']);
    2. app.controller('ctrl', function ($scope, $state) {
    3. $scope.changeState = function () {
    4. $state.go('contact.detail');
    5. };
    6. });

  • href(stateOrName, params, options)

    A url generation method that returns the compiled url for the given state populated with the given params.

    Parameters
    Param Type Details
    stateOrName stringobject

    The state name or state object you'd like to generate a url from.

    params

    (optional)
    object

    An object of parameter values to fill the state's required parameters.

    options

    (optional)
    object

    Options object. The options are:

    • lossy - {boolean=true} - If true, and if there is no url associated with the state provided in the first parameter, then the constructed href url will be built from the first navigable ancestor (aka ancestor with a valid url).
    • inherit - {boolean=true}, If true will inherit url parameters from current url.
    • relative - {object=$state.$current}, When transitioning with relative path (e.g '^'), defines which state to be relative from.
    • absolute - {boolean=false}, If true will generate an absolute url, e.g. "http://www.example.com/fullurl".
    Returns
    string

    compiled state url

    Example

    1. expect($state.href("about.person", { person: "bob" })).toEqual("/about/bob");
  • includes(stateOrName, params, options)

    A method to determine if the current active state is equal to or is the child of the state stateName. If any params are passed then they will be tested for a match as well. Not all the parameters need to be passed, just the ones you'd like to test for equality.

    Parameters
    Param Type Details
    stateOrName string

    A partial name, relative name, or glob pattern to be searched for within the current state name.

    params

    (optional)
    object

    A param object, e.g. {sectionId: section.id}, that you'd like to test against the current active state.

    options

    (optional)
    object

    An options object. The options are:

    • relative - {string|object=} - If stateOrName is a relative state reference and options.relative is set, .includes will test relative to options.relative state (or name).
    Returns
    boolean

    Returns true if it does include the state

    Example

    Partial and relative names

    1. $state.$current.name = 'contacts.details.item';
    2. // Using partial names
    3. $state.includes("contacts"); // returns true
    4. $state.includes("contacts.details"); // returns true
    5. $state.includes("contacts.details.item"); // returns true
    6. $state.includes("contacts.list"); // returns false
    7. $state.includes("about"); // returns false
    8. // Using relative names (. and ^), typically from a template
    9. // E.g. from the 'contacts.details' template
    10. <div ng-class="{highlighted: $state.includes('.item')}">Item</div>

    Basic globbing patterns

    1. $state.$current.name = 'contacts.details.item.url';
    2. $state.includes("*.details.*.*"); // returns true
    3. $state.includes("*.details.**"); // returns true
    4. $state.includes("**.item.**"); // returns true
    5. $state.includes("*.details.item.url"); // returns true
    6. $state.includes("*.details.*.url"); // returns true
    7. $state.includes("*.details.*"); // returns false
    8. $state.includes("item.**"); // returns false
  • is(stateOrName, params, options)

    Similar to $state.includes, but only checks for the full state name. If params is supplied then it will be tested for strict equality against the current active params object, so all params must match with none missing and no extras.

    Parameters
    Param Type Details
    stateOrName stringobject

    The state name (absolute or relative) or state object you'd like to check.

    params

    (optional)
    object

    A param object, e.g. {sectionId: section.id}, that you'd like to test against the current active state.

    options

    (optional)
    object

    An options object. The options are:

    • relative - {string|object} - If stateOrName is a relative state name and options.relative is set, .is will test relative to options.relative state (or name).
    Returns
    boolean

    Returns true if it is the state.

    Example

    1. $state.$current.name = 'contacts.details.item';
    2. // absolute name
    3. $state.is('contact.details.item'); // returns true
    4. $state.is(contactDetailItemStateObject); // returns true
    5. // relative name (. and ^), typically from a template
    6. // E.g. from the 'contacts.details' template
    7. <div ng-class="{highlighted: $state.is('.item')}">Item</div>
  • reload(state)

    A method that force reloads the current state. All resolves are re-resolved, controllers reinstantiated, and events re-fired.

    Parameters
    Param Type Details
    state

    (optional)
    string=object
    • A state name or a state object, which is the root of the resolves to be re-resolved.
    Returns
    promise

    A promise representing the state of the new transition. See $state.go.

    Example

    1. //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'
    2. //and current state is 'contacts.detail.item'
    3. var app angular.module('app', ['ui.router']);
    4. app.controller('ctrl', function ($scope, $state) {
    5. $scope.reload = function(){
    6. //will reload 'contact.detail' and 'contact.detail.item' states
    7. $state.reload('contact.detail');
    8. }
    9. });

    reload() is just an alias for:

    1. $state.transitionTo($state.current, $stateParams, {
    2. reload: true, inherit: false, notify: true
    3. });
  • transitionTo(to, toParams, options)

    Low-level method for transitioning to a new state. $state.go uses transitionTo internally. $state.go is recommended in most situations.

    Parameters
    Param Type Details
    to string

    State name.

    toParams

    (optional)
    object

    A map of the parameters that will be sent to the state, will populate $stateParams.

    options

    (optional)
    object

    Options object. The options are:

    • location - {boolean=true|string=} - If true will update the url in the location bar, if false will not. If string, must be "replace", which will update url and also replace last history record.
    • inherit - {boolean=false}, If true will inherit url parameters from current url.
    • relative - {object=}, When transitioning with relative path (e.g '^'), defines which state to be relative from.
    • notify - {boolean=true}, If true will broadcast $stateChangeStart and $stateChangeSuccess events.
    • reload (v0.2.5) - {boolean=false|string=|object=}, If true will force transition even if the state or params have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd use this when you want to force a reload when everything is the same, including search params. if String, then will reload the state with the name given in reload, and any children. if Object, then a stateObj is expected, will reload the state found in stateObj, and any children.
    Returns
    promise

    A promise representing the state of the new transition. See $state.go.

    Example

    1. var app = angular.module('app', ['ui.router']);
    2. app.controller('ctrl', function ($scope, $state) {
    3. $scope.changeState = function () {
    4. $state.transitionTo('contact.detail');
    5. };
    6. });

Properties

  • params

    A param object, e.g. {sectionId: section.id)}, that you'd like to test against the current active state.

  • current

    A reference to the state's config object. However you passed it in. Useful for accessing custom data.

  • transition

    Currently pending transition. A promise that'll resolve or reject.

Events

  • $stateChangeError

    Fired when an error occurs during transition. It's important to note that if you have any errors in your resolve functions (javascript errors, non-existent services, etc) they will not throw traditionally. You must listen for this $stateChangeError event to catch ALL errors.

    Type:

    broadcast

    Target:

    root scope
    Parameters
    Param Type Details
    event Object

    Event object.

    toState State

    The state being transitioned to.

    toParams Object

    The params supplied to the toState.

    fromState State

    The current state, pre-transition.

    fromParams Object

    The params supplied to the fromState.

    error Error

    The resolve error object.

  • $stateChangeStart

    Fired when the state transition begins. You can use event.preventDefault() to prevent the transition from happening and then the transition promise will be rejected with a 'transition prevented' value.

    Type:

    broadcast

    Target:

    root scope
    Parameters
    Param Type Details
    event Object

    Event object.

    toState State

    The state being transitioned to.

    toParams Object

    The params supplied to the toState.

    fromState State

    The current state, pre-transition.

    fromParams Object

    The params supplied to the fromState.

    Example

    1. $rootScope.$on('$stateChangeStart',
    2. function(event, toState, toParams, fromState, fromParams){
    3. event.preventDefault();
    4. // transitionTo() promise will be rejected with
    5. // a 'transition prevented' error
    6. })
  • $stateChangeSuccess

    Fired once the state transition is complete.

    Type:

    broadcast

    Target:

    root scope
    Parameters
    Param Type Details
    event Object

    Event object.

    toState State

    The state being transitioned to.

    toParams Object

    The params supplied to the toState.

    fromState State

    The current state, pre-transition.

    fromParams Object

    The params supplied to the fromState.

  • $stateNotFound

    Fired when a requested state cannot be found using the provided state name during transition. The event is broadcast allowing any handlers a single chance to deal with the error (usually by lazy-loading the unfound state). A special unfoundState object is passed to the listener handler, you can see its three properties in the example. You can use event.preventDefault() to abort the transition and the promise returned from go will be rejected with a 'transition aborted' value.

    Type:

    broadcast

    Target:

    root scope
    Parameters
    Param Type Details
    event Object

    Event object.

    unfoundState Object

    Unfound State information. Contains: to, toParams, options properties.

    fromState State

    Current state object.

    fromParams Object

    Current state params.

    Example

    1. // somewhere, assume lazy.state has not been defined
    2. $state.go("lazy.state", {a:1, b:2}, {inherit:false});
    3. // somewhere else
    4. $scope.$on('$stateNotFound',
    5. function(event, unfoundState, fromState, fromParams){
    6. console.log(unfoundState.to); // "lazy.state"
    7. console.log(unfoundState.toParams); // {a:1, b:2}
    8. console.log(unfoundState.options); // {inherit:false} + default options
    9. })

--@ui-router——$state服务原版详解的更多相关文章

  1. 2-4、nginx特性及基础概念-nginx web服务配置详解

    Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...

  2. Linux:SSH服务配置文件详解

    SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...

  3. Nginx服务优化详解

    Nginx服务优化详解 1.隐藏Nginx版本信息 编辑主配置文件nginx.conf,在http标签中添加代码 server_tokens off;来隐藏软件版本号. 2.更改Nginx服务启动的默 ...

  4. “全栈2019”Java多线程第十章:Thread.State线程状态详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  5. (转)Nginx静态服务配置---详解root和alias指令

    Nginx静态服务配置---详解root和alias指令 原文:https://www.jianshu.com/p/4be0d5882ec5 静态文件 Nginx以其高性能著称,常用与做前端反向代理服 ...

  6. vuex的使用及持久化state的方式详解

    vuex的使用及持久化state的方式详解 转载  更新时间:2018年01月23日 09:09:37   作者:baby格鲁特    我要评论 这篇文章主要介绍了vuex的使用及持久化state的方 ...

  7. Nginx静态服务配置---详解root和alias指令

    Nginx静态服务配置---详解root和alias指令 静态文件 Nginx以其高性能著称,常用与做前端反向代理服务器.同时nginx也是一个高性能的静态文件服务器.通常都会把应用的静态文件使用ng ...

  8. iOS开发——UI篇OC篇&SpriteKit详解

    SpriteKit详解 SpriteKit,iOS/Mac游戏制作的新纪元 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或 ...

  9. Android----drawable state各个属性详解----ListView几个比较特别的属性:

    android:drawable 放一个drawable资源android:state_pressed 是否按下,如一个按钮触摸或者点击.android:state_focused 是否取得焦点,比如 ...

随机推荐

  1. 加工生产调度(prod)

    加工生产调度(prod) 题目描述 有n个部件需在A.B机器上加工,每个工件都必须经过先A后B两道工序. 已知:部件i在A.B机器上的加工时间分别为ai,bi. 问:如何安排n个工件的加工顺序,才能使 ...

  2. 词链(link)

    词链(link) 题目描述 给定一个仅包含小写字母的英文单词表,其中每个单词最多包含50个字母.如果一张由一个词或多个词组成的表中,每个单词(除了最后一个)都是排在它后面的单词的前缀,则称此表为一个词 ...

  3. ms08_067利用过程

    进入msf. show exploits. use exploit/windows/smb/ms08_067_netapi. show playloads. set PLAYLOAD windows/ ...

  4. HDU 1882 Strange Billboard(状态压缩+转置优化)

    状态压缩,我们枚举第一行的所有状态,然后根据第一行去转变下面的行,枚举或者深搜直到最后最后一行,可以判断是不是所有的1都可以全部转换为0,记录所有的解,输出最小的一个就可以. 这里有一个很重要的优化, ...

  5. 某技术大牛的帖子(android项目总结)

    1. 一般性控件需要设置onclick事件才会有点击效果(selector). 2.  <item android:drawable=”@drawable/btn_ct_green” /> ...

  6. 开始学习MFC

    <<对0基础MFC者的一点建议>>---------------------摘自某论坛lint2008的回复,不管对错,先看看.     因为上半年自己刚刚学了点MFC,算是对 ...

  7. MVC3在页面上获取当前控制器名称、Action名称以及路由参数

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  8. Mac下eclipse导入其他工程中文注释出现乱码解决方案

    因为用的是mac版的eclipse,导入其他工程注释出现乱码的情况,找了网上的很多方法,大部分都是说的workspace,在这里修改,但是我修改之后还是乱码,最后发现这样一个方法,才得以解决. 点击 ...

  9. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  10. FM收音机 RDS的强大功能

    FM收音机 RDS的强大功能 分类: MTK2011-04-26 16:06 14889人阅读 评论(6) 收藏 举报 交通公告体育音乐娱乐教育 前言 随着发展,会有越来越多的电台具有RDS广播功能, ...