Angular.js跨controller实现参数传递的两种方法


Posted in Javascript onFebruary 20, 2017

前言

由于controllers之间不共享scope,如果希望在controllers之间传递参数,可能需要通过其他的方式实现,以下是当前我用到的两种在controllers之间传递参数的方法。

注:参考文章Sharing Data Between Angular Controllers

一、service

可以写一个包含get/set的service,取参数/赋参数

.factory('paramService',function(){
 return {
 result:[],
 getResult:function(){
 return this.result;
 },
 setResult:function(res){
 this.result = res;
 }
 };
})

然后可以在controllerOne中赋值,在controllerTwo中取值

// 赋值
.controller('one',function(paramService){
 paramService.setResult('one');
})

// 取值
.controller('two',function(paramService){
 var param = paramService.getResult();
})

二、$stateParams

第二种方法用于路由间传递参数,用途也比较广泛,使用场景比较多

// 传参
.state('one',{
 url:'one',
 controller:'one',
 template:'one.html',
 params:{
 name:'john'
 }
})

// 取参
.controller('one',function($stateParams){
 var name = $stateParams.name;
})

others/localStorage

其他方法可以使用一些h5的小技巧,比如使用localStorage来存参/取参,其他的方法,暂时没想到也没用到,有待后续补充.

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Angular能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
JS二维数组的定义说明
Mar 03 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
jQuery中parents()方法用法实例
Jan 07 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
May 03 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
Apr 07 jQuery
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
Bootstrap table右键功能实现方法
Feb 20 #Javascript
BootstrapTable refresh 方法使用实例简单介绍
Feb 20 #Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 #Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 #Javascript
原生js实现轮播图的示例代码
Feb 20 #Javascript
深入理解Javascript中的观察者模式
Feb 20 #Javascript
浅谈js中function的参数默认值
Feb 20 #Javascript
You might like
php Rename 更改文件、文件夹名称
2011/05/24 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
PHPMailer发送邮件
2016/12/28 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
IBatis持久层技术
2016/07/18 面试题
护士自我鉴定
2013/10/23 职场文书
渡河少年教学反思
2014/02/12 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
班级课外活动总结
2014/07/09 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
校友回访母校寄语
2015/02/26 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android