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 相关文章推荐
封装好的省市地区联动控件附下载
Aug 13 Javascript
javascript 单选框,多选框美化代码
Aug 01 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
Sep 01 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 Javascript
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
Javascript如何实现双指控制图片功能
Feb 25 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
JavaScript中reduce()的用法
May 11 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
我的论坛源代码(三)
2006/10/09 PHP
PHP文件下载类
2006/12/06 PHP
介绍几个array库的新函数 php
2006/12/29 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
js获取单选按钮的数据
2006/11/27 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
javascript解析json实例详解
2014/11/05 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python实现二维插值的三维显示
2018/12/17 Python
Python print不能立即打印的解决方式
2020/02/19 Python
关于python 跨域处理方式详解
2020/03/28 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
几个常见的软件测试问题
2016/09/07 面试题
十岁生日同学答谢词
2014/01/19 职场文书
财务出纳岗位职责
2014/02/03 职场文书
运动会方队口号
2014/06/07 职场文书
文明寝室标语
2014/06/13 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
质检员岗位职责
2015/02/03 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis