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 相关文章推荐
身份证号码前六位所代表的省,市,区, 以及地区编码下载
Apr 12 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
JS获取URL中的参数数据
Dec 05 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
浅谈node模块与npm包管理工具
Jan 03 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
vue 中滚动条始终定位在底部的方法
Sep 03 Javascript
JS面向对象编程——ES6 中class的继承用法详解
Mar 03 Javascript
vue+canvas实现移动端手写签名
May 21 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
一个php作的文本留言本的例子(三)
2006/10/09 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
js 模拟气泡屏保效果代码
2010/07/10 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
Python输出9*9乘法表的方法
2015/05/25 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
python关闭占用端口方式
2019/12/17 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
酒店总经理欢迎词
2014/01/08 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
小学教师师德承诺书
2014/05/23 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
九年级化学教学反思
2016/02/22 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python