在这里分享我做的一个使用ui-router 传参的小demo
1.首先第一步设置入口文件index.html,注意加载的顺序,先加载包,再加载自己写的控制器。
<!doctype html> <html lang="en" ng-app="routerApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title>测试</title> <!--lib是angular包的文件夹--> <script src="lib/jquery/jquery-1.11.3.min.js"></script> <script src="lib/angular/angular.js"></script> <script src="lib/angular-ui/angular-ui-router.js"></script> <!--js控制器的文件夹--> <script src="js/app.js"></script> <script src="js/indexCtrl.js"></script> <script src="js/resultCtrl.js"></script> </head> <body> <div ui-view> </div> </body> </html>
2.app.js文件,依赖注入,设置路由,此处的路由是使用ui-router路由,这里简单的演示了两个模板之间的传参,传递参数的模板test.html和接收参数的模板result.html
var routerApp = angular.module('routerApp', ['ui.router']); routerApp.run(function($rootScope, $state, $stateParams) { $rootScope.$state = $state; $rootScope.$stateParams = $stateParams; }); routerApp.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/index'); $stateProvider .state('index', {//模板的参数 url: '/index',//url的参数 templateUrl: 'templates/test.html',//模板的位置 controller: 'MyController' }) .state('result', { url: '/result/:id/:number',//需要传的参数的键名 templateUrl: 'templates/result.html', controller: 'resultCtrl' }); });
3.第一个主页面的模板test.html,并且设置点击事件toResult()
<meta charset="UTF-8"> <div>hello world</div> <input type="button" ng-click="toResult()" value="toResult">
4.test.html的控制器indexCtrl.js,设置需要传递的参数$scope.abc和$scope.toResult,点击事件toResult()里面其实就是一个$state.go('模板的参数',{app.js里面需要传的参数的键名:需要传的参数值})的方法
routerApp.controller('MyController', function($scope, $state) { $scope.abc = "nice";//需要传的参数值 $scope.def = 10;//需要传的参数值 $scope.toResult = function(){ $state.go('result',{id: $scope.abc,number: $scope.def}); } });
5.接收参数的模板result.html
<meta charset="UTF-8"> <div>hello world2</div>
6.result.html的控制器resultCtrl.js,这里使用$stateParams的方法去接收上一个页面传递过来的参数
routerApp.controller('resultCtrl', function($scope, $state, $stateParams) { var id = $stateParams.id; var number = $stateParams.number; console.log(id); console.log(number); });
项目目录
js\app.js、indexCtrl.js、resultCtrl.js
lib\
jquery\jquery-1.11.3.min.js
angular\angular.js
angular-ui\angular-ui-router.js
templates\test.html、result.html
index.html
其实整个过程并不难,只是穿插在模板和控制器之间,容易让人摸不着头脑,只要分清楚具体的参数是对应哪一个,很容易理解。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍AngularJS ui-router (嵌套路由)实例,包括了AngularJS ui-router (嵌套路由)实例的使用技巧和注意事项,需要的朋友参考一下 我们都知道,如果使用原生路由的话,Angular的视图是通过ng-view这个指令进行加载的。比如这样:<div ng-view></div>。一般,我们都会把这个指令放在index.html这个文件里面,然后,通过控制器来
本文向大家介绍vue-router 路由传参用法实例分析,包括了vue-router 路由传参用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue-router 路由传参用法。分享给大家供大家参考,具体如下: 在设置路由规则时,我们可以给路径名设置一个别名,方便进行路由跳转,而不需要去记住过长的全路径。 例如: 上文中的 importFile,jsp 在上一篇路由基本用法中介
我按上面的传值,为什么目标页都拿不到呢?这可能是哪里问题? 而且跳之前明明有值: 可在目标页确都是空。
1. 前言 本小节我们介绍 VueRouter 路由组件传参。包括 params 传参、query 传参的两种方式。路由传参的知识点非常重要,在日常开发中,我们经常会通过路由传递各种参数,同学们在学完本节后可以将小节中的案例自己动手实现一遍,这样才可以加深印象并熟练掌握。 2. params 传参 使用 params 传参数我们可以分为两个步骤: 定义路由以及路由接收的参数。 路由跳转时传入对应参
推荐直接使用官方 vue-router,VUX部分组件支持link属性直接支持vue-router的路由参数,vux2模板内置了vue-router。 如果使用了过渡(转场动画),在iPhone上使用左划返回时动画会再执行一遍,目前没有找到可行的处理方法,如果你有处理方案,欢迎PR。 https://github.com/airyland/vux/pull/2259
路由器用于路由客户端应用程序并定义应用程序对象的URL表示。 当Web应用程序为应用程序中的重要位置提供可链接,可收藏且可共享的URL时,需要路由器。 下表列出了可用于操作BackboneJS - Router - S.No. 方法和描述 1 extend 它扩展了主干的路由器类。 2 routes 它定义了应用程序对象的URL表示。 3 initialize 它为路由器实例化创建了一个新的构造函