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 相关文章推荐
传智播客学习之JavaScript基础篇
Nov 13 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
JS中表单的使用小结
Jan 11 Javascript
JAVA四种基本排序方法实例总结
Jul 24 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
jquery对象与DOM对象转化
Feb 08 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
解决vue热替换失效的根本原因
Sep 19 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
Vue看了就会的8个小技巧
Jan 21 Vue.js
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程序的方法小结
2012/02/23 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
php header功能的使用
2013/10/28 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
学习JS中的DOM节点以及操作
2018/04/30 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
python人人网登录应用实例
2014/09/26 Python
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
python性能测试工具locust的使用
2020/12/28 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
办公室主任岗位职责
2013/11/08 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
银行办理业务介绍信
2014/01/18 职场文书
创业资金计划书
2014/02/06 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
困难补助申请报告
2015/05/19 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
spring boot实现文件上传
2022/08/14 Java/Android