Angular.js angular-ui-router的简单实践

Angular.js angular-ui-router的简单实践

标签: Angular angular-ui-router web前端

开始之前

一些说明

  • angular-ui-router的使用方法有很多,此文中,我们直接在控制器中使用,并完成一个简单的路由。

  • 文中 Angular.js 的版本为 1.5.2

下载和安装

直接通过 bower 来安装 angular-ui-router

  • 使用 bower 安装 angular-ui-router 之前,首先需要安装 npmbowernpm 是node.js的包管理工具,下载安装node.js,即可完成 npm 的安装

  • 通过 npm 安装 bower (如果未安装 bower):

    npm install -g bower
  • 安装 angular-ui-router

    bower install --save angular-ui-router

使用 angular-ui-router

首先要在 angular.module 方法中,注入 angular-ui-router

var app = angular.module('myApp',['ui.router']);

定义路由规则

app.config(function($stateProvider,$urlRouterProvider){

    /**
     * $stateProvider 提供的 state 方法包含两个参数
     * @param 路由名称 String
     * @param 路由规则 Object
     * 此方法用来定义路由名称和规则
     */
    $stateProvider.state('user',{
        url : "/user/:uid",controller : 'MyCtrl'
    });
    
    // 将未定义的路由重定向
    $urlRouterProvider.otherwise("/");
});

在控制器中使用

app.controller("MyCtrl",function($scope,$state){
    // 监听路由变化
    $scope.$on('$stateChangeSuccess',function(){
        var route_name = $state.current.name; // 获取当前路由名称
        if(route_name === 'user'){
            var uid = $state.params.uid // 获取路由参数
            console.log(uid);
        }
    });
    
    // 主动路由跳转:路由名称,路由参数
    $state.go('user',{'uid' : 88} );
});

其他

  • html 中,用 <a> 标签指定路由的写法为:

    <a href="#/user/88">Tom</a>
  • angular.js的路由,在浏览器URL地址栏以这样的形式展现:

    www.example.com/my/page#/user/88

日期:2016-3

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...