欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-25 11:55:06
开始之前 一些说明 angular-ui-router的使用方法有很多,此文中,我们直接在控制器中使用,并完成一个简单的路由。 文中 angular....

开始之前

一些说明

  1. angular-ui-router的使用方法有很多,此文中,我们直接在控制器中使用,并完成一个简单的路由。
  2. 文中 angular.js 的版本为 1.5.2

下载和安装

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

使用 bower 安装 angular-ui-router 之前,首先需要安装 npm 和 bower 。npm 是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" rel="external nofollow" >tom</a>

angular.js的路由,在浏览器url地址栏以这样的形式展现:www.example.com/my/page#/user/88

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。