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 相关文章推荐
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
May 15 Javascript
javascript去除空格方法小结
May 21 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
javascript实现数据双向绑定的三种方式小结
Mar 09 Javascript
原生js实现验证码功能
Mar 16 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
全面解析Vue中的$nextTick
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
php中将数组存到文件里的实现代码
2012/01/19 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
php遍历目录方法小结
2015/03/10 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
关于JS字符串函数String.replace()
2013/04/07 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
2013/12/27 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
详解vue-cli 脚手架 安装
2019/04/16 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python读取oracle函数返回值
2016/07/18 Python
Python变量和字符串详解
2017/04/29 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python已协程方式处理任务实现过程
2019/12/27 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
logging level级别介绍
2020/02/21 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
水污染治理工程专业求职信
2014/06/14 职场文书
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
使用python绘制分组对比柱状图
2022/04/21 Python