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 相关文章推荐
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
Nov 12 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
vue多级多选菜单组件开发
Sep 08 Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
JS对象创建的几种方式整理
Feb 28 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
JavaScript类型相关的常用操作总结
Feb 14 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 魔术方法使用说明
2009/10/20 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
Python 序列的方法总结
2016/10/18 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
Python 可视化神器Plotly详解
2020/12/26 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
预备党员思想汇报范文
2013/12/29 职场文书
支部鉴定材料
2014/06/02 职场文书
信访工作个人总结
2015/03/03 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python