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 相关文章推荐
JavaScript 动态创建VML的方法
Oct 14 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
Jquery使用css方法改变样式实例
May 18 Javascript
Bootstrap基础学习
Jun 16 Javascript
javascript编程异常处理实例小结
Nov 30 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
angular实现商品筛选功能
Feb 01 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
Jun 17 Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
Nov 30 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
瀑布流布局代码一例
2014/04/11 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Python实现进程同步和通信的方法
2018/01/02 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
python设置表格边框的具体方法
2020/07/17 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
实名检举信范文
2015/03/02 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
高中历史教学反思
2016/02/19 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
用Python selenium实现淘宝抢单机器人
2021/06/18 Python