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 相关文章推荐
Jquery数字上下滚动动态切换插件
Aug 08 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
Apr 01 Javascript
jQuery基于排序功能实现上移、下移的方法
Nov 26 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 Javascript
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
vue几个常用跨域处理方式介绍
Feb 07 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 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
php 随机生成10位字符代码
2009/03/26 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
prototype 学习笔记整理
2009/07/17 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
AngularJS内置指令
2015/02/04 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python heapq使用详解及实例代码
2017/01/25 Python
Python入门学习指南分享
2018/04/11 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
小学生获奖感言范文
2014/02/02 职场文书
党员十八大心得体会
2014/09/12 职场文书
Python自动化实战之接口请求的实现
2022/05/30 Python
python热力图实现的完整实例
2022/06/25 Python
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript