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+CSS图片幻灯切换特效
Nov 20 Javascript
简单的代码实现jquery定时器
Jan 03 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
Vue表单输入绑定的示例代码
Nov 01 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的ddos攻击解决方法
2015/01/08 PHP
php导入模块文件分享
2015/03/17 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
Javascript typeof 用法
2008/12/28 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
食堂采购员岗位职责
2014/03/17 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
mysql的单列多值存储实例详解
2022/04/05 MySQL