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 Object与Function使用
Jan 11 Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 Javascript
基于jQuery实现返回顶部实例代码
Jan 01 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
移动端基础事件总结与应用
Jan 12 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 Javascript
JS创建自定义对象的六种方法总结
Dec 15 Javascript
Vue router配置与使用分析讲解
Dec 24 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
php && 逻辑与运算符使用说明
2010/03/04 PHP
php构造函数与析构函数
2016/04/23 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
你的编程语言可以这样做吗?
2006/09/07 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
python调用百度语音REST API
2018/08/30 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
医学生个人求职信范文
2013/09/24 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
清洁工工作总结
2015/08/11 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python