angularJS 中的传参
今天总结一下 angularJS 传参的 3种方式:(配合 ui-router)
现在有两个页面,page1.html 和 page2.html, 现由 page1.html 向 page2.html 传递参数(name、age)
1)params: 传递静态参数 --> 应用场景:初始化传递 参数
第一步:在 路由中 进行配置,准备参数:
// *1. params 传递静态参数
.state('state2',{
url:"/page2",
templateUrl: "views/page2.html",
controller: 'page2Controller',
params: { name:'jcy', age:'22' }
})
第二步:page2Controller 中接收参数:
.controller('page2Controller', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams){
// * 获取参数:
// $scope.paramsToPage2 = $stateParams;
// 或
$scope.paramsToPage2 = $state.params;
console.log($state.params);
}])
第三步:page2.html 中 应用参数:
<h1>Page2</h1>
<hr/>
<div>
name:{{ paramsToPage2.name }} <br><br> age: {{ paramsToPage2.age }} <br><br>
</div>
查看效果:

ok,成功;
2) ui-sref: 传递参数 --> 应用场景:点击页面上的 < a ui-sref="???"></a> 进行状态切换时,传递参数
第一步:page1.html 中配置 ,准备参数
<a ui-sref="state2{{name:'jcy', age:'22'}}">Page 2</a>
第二步:路由中配置,得到形式参数
说明一下: 在路由器中得到 形式参数,有三种方式
*1. 在 url 中,用形如 url: "/page2/:name/:age" 的方式
*2. 在 url 中,用形如 url:"/page2/{name}/{age}" 的方式
*3. 不在 url 中 配置接收形参的方式,取而代之,有 params 中,用 形如 params: {"name": null, "age":null} 的方式 ,声明 欲接收的 参数名;
重点 提一下,params 中声明的参数 的 key值,一定要与 ui-sref 中欲传递的参数 key值 相同;
// *2. 应用 ui-sref形式 传参,在 router 中的 3种配置方式
.state('state2',{
// url: "/page2/:name/:age", // 方式一: 会在地址栏 显示参数
// url:"/page2/{name}/{age}", // 方式二: 会在地址栏 显示参数
url:"/page2", // 方式三: 不会在地址栏里 显示参数,
// 但是 必须在 params 中定义 与参数 key值 相同的同名变量
templateUrl: "views/page2.html",
controller: "page2Controller",
params: {"name": null, "age":null} // 配合 方式三,使用; (值不一定 非得是 null, 是什么都可以,只要key值不变,value都会被传过来的值 覆盖)
})
第三步:page2Controller 中接收参数:
.controller('page2Controller', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams){
// * 获取参数:
// $scope.paramsToPage2 = $stateParams;
// 或
$scope.paramsToPage2 = $state.params;
console.log($scope.paramsToPage2);
}])
第四步:page2.html 中 应用参数:
<h1>Page2</h1>
<hr/>
<div>
name:{{ paramsToPage2.name }} <br><br> age: {{ paramsToPage2.age }} <br><br>
</div>
查看效果:

ok,成功;
3) $state.go() 传递参数 -->应用场景:在 应用逻辑中进行 状态切换
举例: page1.html 中有个 button 按钮,注意, 不是 ui-sref 形式的按钮,just only a normal button,点击 button 实现 状态切换的效果
第一步:page1.html 中 的 html
<!-- 传递 两个参数:arg1为name, arg2为age -->
<button ng-click="toPage2('jcy','22')">Page 2</button>
第二步: 路由配置
.state('state1',{
url:"/page1",
templateUrl: "views/page1.html",
controller: 'page1Controller'
})
.state('state2',{
url:"/page2",
templateUrl: "views/page2.html",
controller: "page2Controller",
params: {"name": null, "age":null}
})
第三步:page1Controller 中 书写逻辑
.controller('page1Controller', ['$scope', '$state', function($scope, $state){
// * 传递参数:
// $state.go( state, {arg1:xxx, arg2;xxx, .....} ) 形式传递参数
// $state.go() 接收两个参数;第1个 :是要切换到的 state; 第2个:是要传递的参数;
$scope.toPage2 = function(arg1, arg2){
$state.go('state2', {'name': arg1, 'age': arg2}); // 传递的参数 key值,一定要与 模板为page2.html的路由中的 params 中的参数 key 值相同
}
}])
第四步:page2Controller 中 接收参数
.controller('page2Controller', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams){
// * 获取参数:
// $scope.paramsToPage2 = $stateParams;
// 或
$scope.paramsToPage2 = $state.params;
console.log($scope.paramsToPage2);
}])
第五步:page2.html 中 应用参数:
<h1>Page2</h1>
<hr/>
<div>
name:{{ paramsToPage2.name }} <br><br> age: {{ paramsToPage2.age }} <br><br>
</div>
查看效果:

ok,打完收工;
个人总结,转载请注明出处, 谢谢;
angularJS 中的传参的更多相关文章
- AngularJS中页面传参方法
1.基于ui-router的页面跳转传参 (1) 用ui-router定义路由,比如有两个页面,一个页面(producers.html)放置了多个producers,点击其中一个目标,页面跳转到对应的 ...
- Python中的传参是传值还是传址?
传值:在C++中,传值就是把一个参数的值给这个函数,其中的更改不会影响原来的值. 传址:即传引用,直接把这个参数的内存地址传递进去,直接去这个内存地址上进行修改. 但是这些在Python中都没有,Py ...
- 在Java中动态传参调用Python脚本
最近,又接触到一个奇葩的接口,基于老板不断催促赶时间的情况下,在重写java接口和复用已有的python脚本的两条路中选择了后者,但是其实后者并没有好很多,因为我是一个对python的认识仅限于其名称 ...
- apiCloud中openFrameGroup传参
apiCloud中openFrameGroup传参 1.无效的 api.openFrameGroup({ // 打开 frame 组 name: 'group', scrollEnabled: fal ...
- Vue-CLI项目中路由传参
Vue-CLI项目中路由传参 一.标签传参方式:<router-link></router-link> 第一种 router.js { path: '/course/detai ...
- Vue-cli中axios传参的方式以及后端取的方式
0917自我总结 Vue-cli中axios传参的方式以及后端取的方式 一.传参 params是添加到url的请求字符串中的,用于get请求. data是添加到请求体(body)中的, 用于post请 ...
- angularjs向后台传参,后台收不到数据
angularjs中封装了一个$http服务,用来请求远程资源 参见:HTTP API 其中封装过的$http.post和$http.get使用起来比较方便 后台是php,用$_POST['name' ...
- 兼容性js中setTimeout 传参“保值”方案
这里所谓“保值”,是指在setTimeout中指定的时间后,执行指定的方法所用到的“参数”值,跟执行setTimeout时该“参数”值一样.是不是有点懵?看如下例子: ================ ...
- vue.js 1中父组件跳到子组件中并传参让子组件显示不同的内容
父组件中的点击跳转: <ul class="insurance-entry clearfloat"> <li v-link="{name:'produc ...
随机推荐
- 异步 - True 或 False?
异步 - True 或 False? AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML). XMLHttpRequest 对象如果 ...
- 【vijos】1763 Wormhole(贪心)
https://vijos.org/p/1764 首先第一个虫洞一定是建在1号点. 证明如下: 假设一个虫洞在a,一个在b,a<b,那么走到k点的最短距离为 min{|x1-xk|, |x1-x ...
- bash脚本IFS=',' read的意思
IFS is the Input Field Separator, which means the string read will be split based on the characters ...
- ChemDraw绘制苯甲酸钠的生成反应式的方法
苯甲酸钠是苯甲酸的钠盐,就用途来说苯甲酸主要用于制作杀真菌剂,苯甲酸钠则是用于食物或软饮料中的主要商品防腐剂,其防腐最佳PH是2.5-4.0,苯甲酸钠的亲油性也很大,易穿透细胞膜进入细胞体内.苯甲酸钠 ...
- Android 7.1.1 锁屏界面启动流程
前几天遇到一个低概率复现锁屏界面不显示,仅仅显示状态栏的问题,跟了下锁屏界面启动显示的流程,在这分享下,也方便以后自己查看.前面简介了下Zygote启动流程, Zygote进程启动后会首先创建一个Sy ...
- spring 项目升级到spring cloud记录 数据源配置
用的阿里的数据源 增加pom <dependency> <groupId>com.alibaba</groupId> <artifactId>drui ...
- zoj3497(经典矩阵乘法)
原以为是用搜索做的题,想了好久都无法想到一个高效正确的解法. 后面发现竟然这就是矩阵的应用! 碉堡! 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 ——选自ma ...
- linux 项目自动部署脚本
1.使用maven获取源码部署,并可替换配置文件(金融数据分析平台) #!/bin/bash#设置变量cd /home#停止tomcatecho "开始停止tomcat..." p ...
- 【BZOJ4439】[Swerc2015]Landscaping 最小割
[BZOJ4439][Swerc2015]Landscaping Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地从左到右 ...
- 推荐10 个短小却超实用的 JavaScript 代码段
1. 判断日期是否有效 JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要.jQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需 ...