angular.js 路由及页面传参

页面传参数方法:1、$rootScope。2、(url)/user/:name/:age。

页面转换方法:1、href="#/"。2、$state.go。3、$location.path。4、ui-sref

(1)自带路由ngRoute

<html>
    <head>
    	<meta charset="utf-8">
        <title>AngularJS 路由实例</title>
    </head>
    <body ng-app='routingDemoApp' ng-controller="myCtrl">
        <h2>AngularJS 路由应用</h2>
              名: <input type="text" ng-model="names"><br>
        <ul>
            <li><a href="#/">首页1</a></li>
            <li><a href="#/second/2/3">second</a></li>
            <li><a href="#/printers">打印机</a></li>
            <li><a href="#/blabla">其他</a></li>
        </ul>
        <div ng-view></div>
        <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js" ></script>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
        <script>
        var transform =function(data){return $.param(data);    }
            var app=angular.module('routingDemoApp',['ngRoute']);
            app.controller('myCtrl', function($scope,$http, $rootScope) {
              	  $http({
              	    method:'POST',
              	    url:"http://localhost:8090/angu_demo/test.chtm",
              	    data:{"age":20 }
              	  })
               .success(function(data,header,config,status){
              	//响应成功
              		$scope.names = data[0].age;
              		$rootScope.name="rrrrrr";

              	}).error(function(data,header,config,status){
              	//处理响应失败
              	});
            });
            app.controller('AboutController', function($scope,$http,$rootScope,$routeParams) {

            	 $scope.id = $routeParams.id;
            	$scope.age = $routeParams.age;
            	$scope.name=$rootScope.name;

            })
            app.config(['$routeProvider', function($routeProvider){
                $routeProvider
                .when('/',{template:'这是首页页面'})
                .when('/second/:id/:age',
                	{templateUrl: 'second.html',
                    controller: 'AboutController'}
                )
                .when('/printers',{template:'这是打印机页面'})
                .when('/second_2',{template:'这是second_2'})
                .otherwise({redirectTo:'/'});
            }]);

        </script>

    </body>
</html>

(2)ui-router

<html>
    <head>
    	<meta charset="utf-8">
        <title>AngularJS 路由实例 </title>
          <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 

       <script src="http://cdn.bootcss.com/angular-ui-router/1.0.0-beta.3/angular-ui-router.js"></script> 

    </head>
    <body ng-app="routerApp" >
    <div ng-controller="MainCtrl">
       <ul>
            <li><a href="#/">首页1</a></li>
            <li><a href="#/second/">second</a></li>
            <li><a href="#/third">third</a></li>
        </ul>
        <a href="#/fourth/42" >href传参数</a>
        <a ui-sref="fifth({'name':123,'id':256})">ui-sref传参数</a>
        <button ng-click="ngclick_go()" class="btn btn-primary " >state.go传参数</button>
         <button ng-click="ngclick_location()" class="btn btn-primary " >location传参数</button>
         <div ui-view></div>
         <div ui-view="second0"></div>
		<div ui-view="second1"></div>
        <div ui-view="second2"></div>
</div>
   <script type="text/javascript">
      /* var app = angular.module('routerApp', ['ui.router']); */
      var app=angular.module('routerApp',['ui.router']);
      app.controller('MainCtrl', function($scope, $state,$location) {
    	  $scope.ngclick_go = function() {
    		  $state.go('sixth',{name: 42}); // 跳转后的URL: #/camnpr/appManager
    	    };
    	    $scope.ngclick_location = function() {
    	       $location.path('/sixth/detail/42'); // 功能也是跳转的
      	    };

    	});
       app.config(function($stateProvider, $urlRouterProvider) {
    	    $urlRouterProvider.otherwise('/second');                                    //与原生的$routerProvider写法不一样的就是$urlRouterProvider先写默认路径
    	    $stateProvider                                                                      //再用$stateProvider.state('',{}).state('',{})...代替$routerProvider.when()方法
    	        .state('second', {
    	            url: '/second',
    	             views: {'second0': {
    	                    templateUrl: 'second0.html' ,                               //看到templateUrl:后面包含了很多的模板
    	                    controller: 'MainCtrl'
    	            	},
    	                'second1': {
    	                    templateUrl: 'second1.html',
    	                    controller: 'MainCtrl'

    	                },
    	                'second2': {
    	                    templateUrl: 'second2.html',
    	                    controller: 'MainCtrl'
    	                }
    	            }
    	        })
    	        .state('third', {
    	            url: '/third',
    	            templateUrl: 'third.html' ,                               //看到templateUrl:后面包含了很多的模板
                    controller: 'MainCtrl'
    	        })

    	         .state('fourth', {
    	            url: '/fourth/:name',
    	            templateUrl: 'forth.html' ,                               //看到templateUrl:后面包含了很多的模板
                    controller: function ($stateParams,$scope) {
                    	$scope.name=$stateParams.name;
                    	alert(=$stateParams.name)
                    }

    	        })
    	         .state('fifth', {
    	            url: '/fifth/:name/:id',
    	            templateUrl: 'fifth.html' ,                               //看到templateUrl:后面包含了很多的模板
                    controller: function ($stateParams,$scope) {
                    	alert($stateParams.name+"   "+$stateParams.id)
                    }

    	        })
    	        .state('sixth', {
    	            url: '/sixth/detail/:name',
    	            templateUrl: 'sixth.html' ,                               //看到templateUrl:后面包含了很多的模板
                    controller: function ($stateParams,$scope) {
                    	alert($stateParams.name)
                    }

    	        })
    	       /*  .state('fourth', {
    	            url: '/fourth/:name',
    	            templateUrl: 'third1.html' ,                               //看到templateUrl:后面包含了很多的模板
                    controller: function ($stateParams,$scope) {
                    	$scope.name=$stateParams.name;
                    }

    	        }) */

    	});

     </script>

    </body>
</html>

下载地址  http://download.csdn.net/detail/u013378306/9672103

时间: 2024-09-15 06:44:21

angular.js 路由及页面传参的相关文章

java web-js中父子页面传参的问题

问题描述 js中父子页面传参的问题 现在有三个文本框,对应三个按钮,调用如下方法,参数id是对应文本框的id,需要打开一个子页面,然后需要把子页面的值传到对应的文本框中,现在遇到的问题就是父页面怎么把文本框的id传个子页面,子页面如何获取id,并进行判断. 父页面中function如下: function openNewWindow(id){ window.open("<%=basePath%>user/showUserList.action#" + id,'linkman

jsp页面传参乱码的解决方法

 本篇文章主要是对jsp页面传参乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jsp页面传参乱码的解决方法   jsp页面js:   encodeURIComponent要使用两次 encodeURIComponent(encodeURIComponent(userAccount));   java: String  userAccount = java.net.URLDecoder.decode(userAccount,"UTF-8");/*需要处理异常*/

jsp页面传参乱码的解决方法_JSP编程

jsp页面传参乱码的解决方法 jsp页面js: encodeURIComponent要使用两次encodeURIComponent(encodeURIComponent(userAccount)); java:String  userAccount = java.net.URLDecoder.decode(userAccount,"UTF-8");/*需要处理异常*/ 纯属个人备注,以便后期使用

图片-jsp页面传参问题(参数长度太长)

问题描述 jsp页面传参问题(参数长度太长) < img src=""../admin/image-read.action?icode=${data.icode}""/> 其中icode是一个图片的二进制数据串,比较长,传不到后台.有什么其他方法? 解决方案 这个方式肯定不行啊,虽然没明白你是不是直接从前台获取一个本地图片然后在jsp中转成二进制的,但是这样肯定传不了的.可以使用ajax form提交提交后也不刷新当前页面. 解决方案二: jsp页面传到

struts action取数-Java Struts2 框架页面传参问题

问题描述 Java Struts2 框架页面传参问题 strut2 中 可以在action中 将页面参数封装成对象 如果我的对象包括属性对象 的集合(List) 要怎么配置才能自动封装呢 解决方案 把页面参数封装成对象,这是有限制的.一般只能封装成含有基本数据类型属性的对象,集合类型需要自己去单独处理. 解决方案二: 需要怎么处理呢 或者能否给我一个其他的思路 怎么处理 相同name 的标签传的值呢 谢谢 解决方案三: 需要怎么处理呢 或者能否给我一个其他的思路 怎么处理 相同name 的标签传

jsf页面传参问题

问题描述 有这样一个需求,从一个页面跳到另一个页面<h:commandButton type="" value="添加待查问题" action="ams_check_list.xhtml" actionListener="#{A_Bean.getParam}" styleClass="button_1" immediate="true"> <f:attribute na

WEB页面传参有哪些方式

Asp.Net页面之间传递数据大致有这么几种方式:       1.GET方式:       即通过URL加上自定义的name-value集合,这个一般大家都在用,也很方便,而且客户可以直接通过URL访问特定的页面.       2.POST方式:       即通过提交Form来传递Form里的数据,可以在Form中添加Hidden字段来自定义数据.       3.Application域变量:       多个页面访问或修改全局变量来交换数据,记得访问时候要进行加锁/解锁.由于是在服务端的

JSP页面传参出现中文乱码的解决方案_java

很多jsp程序员都遇到过这样的情况,jsp页面传递参数到servlet,只要参数有中文就是乱码,且大多数是??????乱码,尝试了网上比较普遍的好多种办法都不行,最后加了一句话解决问题,这里分享给大家供大家参考. 1.打开tomcat安装目录 2.找到conf文件夹 3.打开里面的server.xml 4.找到 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000&qu

一个页面传参的小问题~

问题描述 [/code]例:<Ahref="list.aspx?title=<%#DataBinder.Eval(Container.DataItem,"nTitle")%>">用户</A>[/code]请问如何传多个参数?谢谢!~ 解决方案 解决方案二:+="参数"解决方案三:<Ahref="list.aspx?title=<%#DataBinder.Eval(Container.Dat