Angularjs实现多个页面共享数据的方式


Posted in Javascript onMarch 29, 2016

废话不多说了,直接看干货吧。

使用service来共享数据

定义一个共享服务的service

//家电维修共享数据的服务 
angular.module("sqhApp").factory("repairDeviceDataShareServer",function($http,$state,$ionicPopup){ 
return { 
//缓存当前需要维修的设备名称、数量、唯一标识 
deviceRepairObj : [], 
//小区位置 
xiquLocation:{}, 
//预约时间 
appointmentDate:{ 
"date":"", 
"time":"" 
}, 
//预约日期界面回退到上一个界面的记录 
appointmentBackPage:"", 
//获取地址回退界面记录 
locationBackPage:"", 
//家电维修描述 
questionDesc:"", 
//确认预约 
confirmAppointment : function(resultJson){ 
var url = "/index.php/Wap/Homemake/createRepairOrder.html"; 
var p = $http.post(url,resultJson); 
p.success(function(response,header,config,status){ 
//提交订单成功 
if(response.status == 0){ 
//提示需要选择设备 
var alertPopup = $ionicPopup.alert({ 
title: '家电维修', 
template: response.msg 
}); 
alertPopup.then(function(res) { 
$state.go("appliance_index"); 
}); 
}else{ 
//提示需要选择设备 
var alertPopup = $ionicPopup.alert({ 
title: '家电维修', 
template: response.msg 
}); 
alertPopup.then(function(res) { 
}); 
} 
}); 
}, 
//确认预约提交的数据 
formData:{} 
}; 
});

跳转到一个新的页面,将repairDeviceDataShareServer注入到controller中

//预约时间控制器 
angular.module("sqhApp").controller("orderDateController", ["$scope", "$state", 
'$ionicPopup', 'repairDeviceDataShareServer','appointmentDateService', 
function ($scope, $state, $ionicPopup,repairDeviceDataShareServer,appointmentDateService) { 
$scope.lists=[]; 
//从服务器获取时间 
appointmentDateService.getAppointmentDateList($scope); 
//回退到上一个页面 
$scope.back = function(){ 
var backPage = repairDeviceDataShareServer.appointmentBackPage; 
//如果没有记录值,则跳转到家电清洗服务包目录 
if(backPage == ""){ 
$state.go("appliance_index"); 
}else{ 
$state.go(backPage); 
} 
} 
//选择时间 
$scope.selectTime = function(myevent){ 
var currentObj = $(myevent.target); 
currentObj.closest("div.time_list").find(".line_height_35px").removeClass("bg_fdd000 color_e5005a").addClass("bg_ff"); 
currentObj.addClass("bg_fdd000 color_e5005a").removeClass("bg_ff"); 
}; 
//选择日期 
$scope.selectDate = function(myevent){ 
var currentObj = $(myevent.target); 
currentObj.closest("div.overflow_hidden").find("div.float_left").removeClass("color_e5005a"); 
currentObj.closest("div.float_left").addClass("color_e5005a"); 
}; 
//确认时间日期 
$scope.confirmDateTime = function(){ 
var selectObjs = $(".bg_f8f8f8 .color_e5005a"); 
//获取日期对象 
var dateObj = $(selectObjs[0]); 
if(dateObj.length == 0){ 
alert("请选择日期"); 
return false; 
} 
//获取时间对象 
var timeObj = $(selectObjs[1]); 
if(timeObj.length == 0){ 
alert("请选择时间"); 
return false; 
} 
//repairDeviceDataShareServer.appointmentDate.date = dateObj; 
repairDeviceDataShareServer.appointmentDate.date = "2016-6-6"; 
repairDeviceDataShareServer.appointmentDate.time = timeObj.html(); 
this.back(); 
}; 
}]);

跳转到一个新的页面中,然后重置repairDeviceDataShareServer里面的数据

angular.module("sqhApp").controller("applianceIndexController", ["$scope", "$state","repairDeviceDataShareServer","applianceWashShareServer", function ($scope, $state, repairDeviceDataShareServer,applianceWashShareServer) { 
//初始化家电维修共享数据 
repairDeviceDataShareServer.deviceRepairObj = []; 
repairDeviceDataShareServer.xiquLocation = {}; 
repairDeviceDataShareServer.appointmentDate = {"date":"","time":""}; 
repairDeviceDataShareServer.appointmentBackPage = {}; 
repairDeviceDataShareServer.locationBackPage = {}; 
repairDeviceDataShareServer.formData = {}; 
repairDeviceDataShareServer.questionDesc = ""; 
//初始化家电清洗共享数据 
applianceWashShareServer.washType=""; 
applianceWashShareServer.formData={}; 
applianceWashShareServer.goodsSelected=[]; 
}]);

关于本文给大家分享的Angularjs实现多个页面共享数据的方式就给大家介绍这么多,希望对大家有所帮助!

Javascript 相关文章推荐
新手常遇到的一些jquery问题整理
Aug 16 Javascript
Safari5中alert的无限循环BUG
Apr 07 Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
jQuery实现给页面换肤的方法
May 30 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
精通JavaScript的this关键字
May 28 Javascript
jQuery版AJAX简易封装代码
Sep 14 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 #Javascript
JavaScript面向对象程序设计教程
Mar 29 #Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 #Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 #Javascript
Jquery操作cookie记住用户名
Mar 29 #Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 #Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 #Javascript
You might like
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
js回调函数仿360开机
2019/12/26 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
pycharm 使用心得(五)断点调试
2014/06/06 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
三星英国官网:Samsung英国
2018/09/25 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
高三体育教学反思
2014/01/29 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
DQL数据查询语句使用示例
2022/12/24 MySQL