涉及知识点:

$stateProvider,$urlRouteProvider

ui-href

$stateParams,$state

1.如何引用依赖angular-ui-router

 angular.module('app',["ui.router"])
  .config(function($stateProvider){
    $stateProvider.state(stateName, stateCofig);
})

2.ui-router配置路由$stateProvider

.config(function($stateProvider) {
$stateProvider.state('dashboard.home', {
url: '/home',
views: {
"content": {
controller: 'HomeCtrl',
templateUrl: 'dashboard/home/home.tpl.html'
}
},
data: { pageTitle: 'Home' },
restricted: true
});
})

具体参数:$stateProvider.state(stateName, stateConfig)

stateName是string类型,stateConfig是object类型

stateConfig包含的字段:template, templateUrl, templateProvider, controller, controllerProvider, resolve, url, params, views, abstract, onEnter, onExit, reloadOnSearch, data

$stateProvider.state("home",{});//statConfig可以为空对象
//state可以有子父级
$stateProvider.state("home",{});
$stateProvider.state("home.child",{}) $stateProvider.state("home",{}).state("about",{}).state("photos",{});//state可以是链式的

3.$urlRouteProvider

$urlRouteProvider.when(whenPath, toPath)
$urlRouterProvider.otherwise(path)
$urlRouteProvider.rule(handler)

4.$state.go

$state.go(to, [,toParams],[,options])
形参to是string类型,必须,使用"^"或"."表示相对路径;
形参toParams可空,类型是对象;
形参options可空,类型是对象,字段包括:location为bool类型默认true,inherit为bool类型默认true,
relative为对象默认$state.$current,notify为bool类型默认为true, reload为bool类型默认为false

$state.go('photos.detail')
$state.go('^')到上一级,比如从photo.detail到photo
$state.go('^.list')到相邻state,比如从photo.detail到photo.list
$state.go('^.detail.comment')到孙子级state,比如从photo.detail到photo.detial.comment

5.ui-sref

ui-sref='stateName'
ui-sref='stateName({param:value, param:value})'

6.详述

大多数应用中的states有一个url与他们相关联,URL Routing是需要在一开始就设计好的。

基本状态设置:

$stateProvider
.state('contacts', {
url: "/contacts",
templateUrl: 'contacts.html'
})

现在当用户输入index.html/contacts,'contacts' state将会被激活且主的ui-view将会和contacts.html一起生成。另一种方式,如果用户通过transitionTo('contacts')来transition to contact状态,则url将会更新成index.html/contacts。

URL参数

$stateProvider
.state('contacts.detail', {
url: "/contacts/:contactId",
templateUrl: 'contacts.detail.html',
controller: function ($stateParams) {
// If we got here from a url of /contacts/42
expect($stateParams).toBe({contactId: "42"});
}
})

或者可以选用花括号形式,效果是一样的:

url: "/contacts/{contactId}"

例子:

    '/hello/'  //Matches only if the path is exactly '/hello/'. There is no special treatment for trailing slashes, and patterns have to match the entire path, not just a prefix.
'/user/:id' //Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or '/user/bob/details'. The second path segment will be captured as the parameter 'id'.
'/user/{id}' //Same as the previous example, but using curly brace syntax.
'/user/{id:int}' //The param is interpreted as Integer.

在link中使用parameters

<a ui-sref="contacts.detail({contactId: id})">View Contact</a>

参考URL:

http://www.cnblogs.com/littlemonk/p/5500801.html

https://github.com/angular-ui/ui-router/wiki/URL-Routing

http://www.cnblogs.com/littlemonk/p/5484322.html

AngularJS-UI-Router的更多相关文章

  1. [转]AngularJS+UI Router(1) 多步表单

    本文转自:https://www.zybuluo.com/dreamapplehappy/note/54448 多步表单的实现   在线demo演示地址https://rawgit.com/dream ...

  2. angularJS ui router 多视图单独刷新问题

    场景:视图层级如下 view1 --view11 --view111 需求:view11的一个动作过后,单独刷新view12 解决方式:修改层级设计 view1 --view11 --view111 ...

  3. Angularjs ui router,路由嵌套 父controller执行问题

    解决方式来源:https://stackoverflow.com/questions/25316591/angularjs-ui-router-state-reload-child-state-onl ...

  4. angularjs ngRoute和ui.router对比

    ngRoute模块是angularjs自带的路由模块,ui.router是一个第三方路由模块,接下来将对两者进行一个对比: ng-router(angular-router.js) ng-view n ...

  5. AngularJS 使用 UI Router 实现表单向导

    Today we will be using AngularJS and the great UI Router and the Angular ngAnimate module to create ...

  6. [转]AngularJS 使用 UI Router 实现表单向导

    本文转自:http://www.oschina.net/translate/angularjs-multi-step-form-using-ui-router 今天我们将使用AngularJs和伟大的 ...

  7. ngRoute 和 ui.router 的使用方法和区别

    在单页面应用中要把各个分散的视图给组织起来是通过路由机制来实现的.本文主要对 AngularJS 原生的 ngRoute 路由模块和第三方路由模块 ui.router 的用法进行简单介绍,并做一个对比 ...

  8. angularjs UI Libraries

    angularjs UI Libraries ● ng-bootstrap is currently available. ● PrimeNG has largest number of compon ...

  9. 【原创】ui.router源码解析

    Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它 ...

  10. angular : $location & $state(UI router)的关系

    次序:angular 的 location会先跑 $rootScope.$on("$locationChangeStart", function (scope, newUrl, o ...

随机推荐

  1. 求排列组合数C(n,m) φ(゜▽゜*)♪

    我们可以先预处理出1~n的阶乘以及阶乘的逆元: 对于阶乘的逆元,我们可以直接由费马小定理,用快速幂求出: (吐槽快速幂…………一定要开long long,不然会爆零

  2. 【Linux】类Unix 操作系统进程监控控制工具 Supervisor

    Supervisor 是一个客户端服务器系统,允许用户监控和控制类 Unix 操作系统上的进程数. 官网 http://supervisord.org 安装1. easy_install superv ...

  3. lower函数

    将大写字母变成小写 >>> a='AAABBBccc' >>> a.lower() 'aaabbbccc'

  4. Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) B

    Description Santa Claus decided to disassemble his keyboard to clean it. After he returned all the k ...

  5. IOS8解决获取位置坐标信息出错(Error Domain=kCLErrorDomain Code=0)(转)

    标题:IOS8解决获取位置坐标信息出错(Error Domain=kCLErrorDomain Code=0) 前几天解决了在ios8上无法使用地址位置服务的问题,最近在模拟器上调试发现获取位置坐标信 ...

  6. Json解析实例

    using System; using System.Collections.Generic; using System.Runtime.Serialization; using System.Win ...

  7. 2.OC蓝牙功能

    一.  最早的蓝牙框架是GameKit,iOS7之前用的比较多,它有只能支持iOS设备间的传输,但是使用步骤简单,我们只需要搞清楚两个类就可以了. GKPeerPickerController:熟称浏 ...

  8. 第三讲. COTS包交换介绍

    COTS里面涉及到虚拟机的概念,所以网络稍微复杂一点点. 基本概念 目前虚拟机里面常见的网卡控制器有三类: 半虚拟化网卡设备,由Hypervisor统一管理,虚拟机里面采用特定的接口进行调用. 透传网 ...

  9. html局部打印

    html页面局部打印的小栗子 只要修改点击打印的按钮和打印的div区域的id就行啦 <!DOCTYPE html> <html> <head> <title& ...

  10. VB.net的特殊语法(区别于C#.NET)

    1:引入命名空间(Imports) Imports System.Exception Imports System.Data.SqlClient Imports System.Security.Cry ...