AngulaJS路由 ui-router 传参实例


Posted in Javascript onApril 28, 2017

在这里分享我做的一个使用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

其实整个过程并不难,只是穿插在模板和控制器之间,容易让人摸不着头脑,只要分清楚具体的参数是对应哪一个,很容易理解。

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

Javascript 相关文章推荐
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
php与js的区别是什么
Aug 05 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
Jan 06 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 Javascript
JavaScript中的闭包
Feb 24 Javascript
使用jquery提交form表单并自定义action的实现代码
May 25 Javascript
D3.js实现散点图和气泡图的方法详解
Sep 21 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 #Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 #Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
Apr 27 #Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 #jQuery
Three.js的使用及绘制基础3D图形详解
Apr 27 #Javascript
jquery ui sortable拖拽后保存位置
Apr 27 #jQuery
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 #Javascript
You might like
关于PHP求解三数之和问题详析
2020/11/09 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
Python 的类、继承和多态详解
2017/07/16 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
python 批量将中文名转换为拼音
2021/02/07 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
2013届毕业生求职信范文
2013/11/20 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
公共场所禁烟标语
2014/06/25 职场文书
法人委托书
2014/07/31 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Python OpenCV超详细讲解基本功能
2022/04/02 Python