`

angular中的路由简单使用

阅读更多

  在单页面应用程序中比如angular应用,我们需要根据url的变化(即:不同的请求),来分配不同的资源。根据请求的URL来决定执行哪个模块,这个过程叫路由,同时,我们需要设计路由规则。

  下面给出一个简单的小demo:

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="UTF-8">  
    <title>angularJS路由</title>  
</head>  
<body ng-app='rootApp'>
  <ul>
    <li><a href='#/'>主页</a></li>
    <li><a href='#/floor1'>一楼</a></li>
    <li><a href='#/floor2'>二楼</a></li>
  </ul>
  <!-- ng-view 渲染站位 -->
  <div ng-view></div>
</body>
<!-- 下面是渲染模板 -->
<script id='tmpl' type='text/ng-template'>
  <h1>{{placeholder}}</h1>
</script>
    <script src="jquery-1.8.3.js"></script> 
	<script src="angular1.2.9.js"></script>
	<script src='angular-route.min.js'></script>
    <script src="app.js"></script>
</body>
</html>

app.js

/* 此处定义模块,由于需要设定路由,所以要注入ngRoute */
var rootApp = angular.module('rootApp', ['ngRoute']);
/* 定义路由表(路由规则)*/
rootApp.config(['$routeProvider', function($routeProvider) {
  /* $routeProvider 就相当于交通警察,根据when和otherwise指挥路由走向 */
  $routeProvider
    .when('/', {
      // 当请求的“URL” / , 找当前定义控制器和视图
      controller: 'DefaultController',
      /* template: '<h1>{{hello}}</h1>' */
      templateUrl: 'tmpl'
    })
    .when('/floor1/1', {
      controller: 'Floor1',
      templateUrl: 'tmpl'
    })
    /* 这里用:id这种形式来保存路由参数,以便后来用$routeParams可以取到 */
    .when('/floor2/:id/:name/:age', {
      controller: 'Floor2',
      templateUrl: 'tmpl'
    })
    .otherwise({
      /* 都不匹配,定向到根目录 */
      redirectTo: '/'
    });
}]);

// 定义相关控制器
rootApp.controller('DefaultController', ['$scope', function($scope) {
  $scope.placeholder= '当前为主页';
}]);
rootApp.controller('Floor1', ['$scope', function($scope) {
  $scope.placeholder = '当前为1楼';
}]);
rootApp.controller('Floor2', ['$scope', '$routeParams', function($scope, $routeParams) {
  /* $routeParams 用于解析请求参数 */
  console.log($routeParams);
  $scope.placeholder= '当前为2楼';
}]);

运行效果:

  输入file:///C:/Users/bijian/Desktop/Angular%20route/app.html#/,显示“当前为主页”。


  输入file:///C:/Users/bijian/Desktop/Angular%20route/app.html#/floor1/1,显示“当前为1楼”。


  输入file:///C:/Users/bijian/Desktop/Angular%20route/app.html#/floor2/2/lisi/18,显示“当前为2楼”。

 

总结 

  angular中的路由需要使用它的ngRoute模块,具体使用方法如上所示,其中路由表的设计是通过模块配置$routeProvider的when和otherwise来处理不同的请求参数。 

  其中ng-view用于占坑,when中的template或者是templateUrl用于渲染控制层定义的数据,去填这个坑,其中路由参数是根据:parmName 来指定,通过$routeParams来解析参数。

 

文章来源:http://blog.csdn.net/Tyro_java/article/details/51532135

  • 大小: 8.8 KB
  • 大小: 9.8 KB
  • 大小: 9.3 KB
分享到:
评论

相关推荐

    Angular1X路由按需加载的简单实现

    4. **配置路由**:在`main.js`或单独的路由配置文件中,使用`$stateProvider`定义状态并指定对应的模块。使用`require.js`的`resolve`属性来延迟加载模块,直到该状态被激活。 ```javascript angular.module('app')...

    Angular ngRoute路由例子

    本示例将深入探讨如何在Angular项目中使用ngRoute进行页面导航和数据传递。 首先,让我们理解路由的基本概念。路由是单页面应用中控制页面跳转的关键机制,它允许我们根据URL来加载不同的视图或组件。在AngularJS中...

    angular中文文档

    5. **路由**:Angular Router允许你在不同的组件间进行导航,创建复杂的单页面应用结构。 6. **表单处理**:Angular提供了强大的表单处理能力,包括模板驱动(Template-driven)和响应式表单(Reactive Forms),...

    Angular8路由守卫原理和使用方法

    在这个示例中,守卫类只是简单地打印了日志并返回true,实际使用时,我们应当在这些方法中加入具体的权限检查逻辑,比如检查用户是否已经登录,是否有权限访问当前路由等。 在app-routing.module.ts文件中,我们...

    Angular 多级路由实现登录页面跳转(小白教程)

    本教程针对Angular初学者,讲解如何实现登录页面与多级路由的跳转,以帮助理解Angular路由的基本原理。 首先,创建一个新的Angular项目,使用命令`ng new logindemo`。接着,进入项目根目录并添加UI库,如ng-zorro-...

    Angular路由简单学习

    在本篇文章中,我们将深入探讨Angular路由的工作原理以及如何使用`$route`服务来创建动态、交互式的用户界面。 首先,Angular路由的核心是`$routeProvider`服务,它负责配置不同的路由规则。在示例代码中,我们看到...

    angular2-website-routes, 使用路由的简单 Angular 2网站示例.zip

    angular2-website-routes, 使用路由的简单 Angular 2网站示例 使用路由构建 Angular 2网站这是一个使用全新路由器的简单 Angular 2网站。 它演示了如何构建组件。配置路由。注入服务,以及使用 @Input decorator将...

    浅谈Angular路由守卫

    其实Angular路由守卫属性可以帮我们做更多有意义的事,而且非常简单。 什么是路由守卫? Angular 的 Route 路由参数中除了熟悉的 path、component 外,还包括四种是否允许路由激活与离开的属性。 canActivate 控制...

    angular2 最新教程(全网首发)

    7. 路由(Routing):Angular2提供了一个强大的路由系统,允许用户在单页应用中通过不同的URL访问不同的视图。 除了以上概念,Angular2还支持HTTP通信。HTTP模块使得与远程服务器交互变得简单,允许开发者使用HTTP...

    angular4的框架

    6. **路由(Routing)**:Angular4提供了强大的路由功能,允许用户在不同的组件间导航。通过`RouterModule`和`Routes`配置,可以定义应用的导航结构。 7. **表单(Forms)**:Angular4支持两种表单:模板驱动表单和...

    switch to angular 2

    2. **模板语法**:讲解如何在HTML模板中使用Angular 2的绑定语法、属性指令和事件处理,以及模板引用变量和安全导航运算符等。 3. **依赖注入**:Angular 2的依赖注入系统是其核心特性之一,它简化了服务的创建和...

    angular2简单的环境

    以下是一些关于 Angular2 简单环境创建的关键知识点: 1. **Node.js 和 npm**:Angular2 的开发环境需要 Node.js 运行时环境,因为它是基于 JavaScript 的后端平台。npm 是随 Node.js 一起安装的包管理器,用于下载...

    Angular2 入门 中文WORD版

    2. **依赖注入(DI)**:Angular2的DI系统使得在应用中获取服务变得简单,无需手动创建对象。只需声明所需的服务,Angular会自动注入。 3. **数据绑定**:Angular2支持双向数据绑定,这意味着视图和模型之间的数据...

    angular 封装全局按钮权限

    在Angular中,服务(Service)是一种可以存储和共享数据、执行复杂操作的组件,它们可以通过依赖注入(Dependency Injection)在整个应用程序中使用。`BtnAuthService`可能包含了一些方法,如`canAccessButton()`或`...

    Angular4+ 中后台管理

    - **依赖注入(DI)**:Angular4中的DI系统使得组件间的服务共享变得简单,通过定义服务提供者,可以实现组件间的通信和数据共享。 - **模块化(Modules)**:NgModule是Angular4的核心概念,它允许我们组织应用的不同...

    Angular 路由route实例代码

    当应用变得越来越复杂时,我们需要一个合理的方式来管理用户在使用过程中看到的界面。AngularJS的做法是将视图分解成布局和模板视图,并且根据用户当前访问的URL来展示对应的视图。 本文对 AngularJS routing 做一...

    详解angular路由高亮之RouterLinkActive

    详解angular路由高亮之RouterLinkActive RouterLinkActive是一个Angular指令,用于在路由激活时添加样式到DOM元素上。它可以帮助开发者快速实现路由高亮功能,提高用户体验。 RouterLinkActive的使用方法非常简单...

    Angular2之二级路由详解

    创建二级组件后,需要在模块文件(如user.module.ts)中导入所需的组件,并在路由配置中使用forChild方法定义二级路由。在配置二级路由时,必须注意path属性不能完全为空,否则将导致路由加载失败。正确的二级路由...

    angular学习资料2

    在这个"angular学习资料2"的压缩包中,可能包含了各种Angular组件、服务、指令的示例代码,以及如何设置项目结构、使用路由、处理表单、进行HTTP请求等方面的实践案例。通过研究这些示例,你可以更好地理解Angular的...

Global site tag (gtag.js) - Google Analytics