在解决这个问题之前,一直处在很苦逼的状态,因为 现在绝大多数 前端模块都是 SPA 模式;所以由此而来出了许多的问题,当然我现在提的这个只是其中一个;
  说一下解决方案:
  1、技术栈
    angularjs1.4.9+ui-route+requireJS
  2、解决步骤如下
  

define([ 'app' ], function(app) {
app.config(["$stateProvider", "$urlRouterProvider",
"hammerDefaultOptsProvider", "$urlMatcherFactoryProvider",
"cfpLoadingBarProvider",
function($stateProvider, $urlRouterProvider, hammerDefaultOptsProvider,
$urlMatcherFactoryProvider, cfpLoadingBarProvider) {
/* 微商城——确认订单 */
.state('sureOrder', {
url: '/sureOrder',
params: {isSureOrder: null},
templateUrl : 'tpls/order/sureOrder.html',
controller:'sureOrderCtrl',
})
/* 微商城——确认支付订单 */
.state('sureOrderPay', {
url: '/sureOrderPay',
params: {isPay: null},
templateUrl : 'tpls/order/sureOrderPay.html',
controller:'sureOrderPayCtrl',
})
}]);
}); /**
* app.run模块,程序首先加载它
*/
define[('app', function(app){
app.run(['$rootScope''], function($rootScope){
$rootScope.$on('$satteChangeSuccess',
function(event, toState, toParams, fromState, fromParams){
// toState -> 当前路由信息{url:... , ...},toParams -> 路由参数
//思路 :判断当前路由是否为 需要操作的页面,然后通过为该路由传
//入的参数判断是否停留在当前页面,如上面路由所配置的,初始参数为null
//所以 当你在进入指定页面前 会给路由传一个参数;当你点击返回键时路由走
//默认值null, 所以这时,你就可以操作页面跳转到你指定要返回的页面了 if(toState.url === "/sureOrder"){
if(toParams.isSureOrder != "true"){
$state.go("order");
return;
}
}
if(toState.url === "/sureOrderPay"){
if(toParams.isPay != "true"){
$state.go("shop-index");
return;
}
}
})
})
}])
  
  以上方案,纯属个人思路,我相信大家会有更好的解决方案,欢迎互相讨教分享!
  很想得到大家的评论,指教! 共同进步!
  最后,感谢您的揽月;

巧-微信公众号-操作返回键问题-angularjs开发 SPA的更多相关文章

  1. 微信公众号API返回不可打印字符的处理。

    引言 在使用微信公众号的"批量获取用户基本信息"API时,发现在某些时候不能使用php的json_decode转为数组,打印出curl获取到的内容中,发现了几个不可打印字符.相信不 ...

  2. Java微信公众号开发

    微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个web平台.微信公众账号的种类可以分为3种,并且一旦选定不可更改.按照功能的限制从小到大依次为:订阅号.服务号.企业号.个人只能注册订阅号 ...

  3. Ionic+AngularJS 开发的页面在微信公众号下显示不出来原因查究

    ionic 页面 微信浏览器遇到的坑 公司的微信公众号一部分页面是用AngularJS+Ioinc开发,发现在本地浏览器测试的时候都没问题,传到服务器在微信公众号下跑就出问题来,经查是: index- ...

  4. requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容

    爬取思路,爬取搜狗微信公众号内容,爬取第一层url时请求太快出现验证码,我这里用的蘑菇云代理,并在程序中我判断什么情况下是否+代理,做到合理运用代理ip.爬取第二层url时验证码出现次数更严重(和第一 ...

  5. 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转

    线程安全使用(四)   这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...

  6. 微信公众号使用LocalStorage解决返回缓存问题

    在开发微信公众号上应用程序时,遇到了一个普遍的问题,从A页跳转到B页后,再由B页跳转回A页,A要要保持跟跳转前一致,通过LocalStorage可以解决. LocalStorage,很好的解决了返回的 ...

  7. appium操作微信公众号H5 web页面

    安卓微信公众号的H5页面是webview,一般操作需要切换context. 在执行如下步骤,就能直接像识别native样识别webview 1.代码追加: ChromeOptions options ...

  8. 后台微信开发入口+关键字 回复等 关注公众号回复 注意获取随机Token 微信的对接校验Token保存到数据库的只是做第一次的校验 其他对微信公众号的操作是去缓存中获取7200S的随机Token

    package com.epalmpay.controller.apiweixin; import com.epalmpay.commom.BaseController;import com.epal ...

  9. appium+python自动化-微信公众号webview操作

    前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, ...

随机推荐

  1. 树莓派.系统.修改声音输出通道(auto,hdmi,耳机接口)

    树莓派平时通过耳机接口一直在正常使用 有一天外接了一个HDMI的屏幕, 结果耳机接口连着的音箱突然就没声音了,在网上查了资料,发现原来树莓派声音输出有3种模式 记录如下: 在命令行终端上输入下面命令将 ...

  2. Java基础总结--Java编程环境变量配置

    1.jdk--bin--都是命令行程序(图形化是对命令行的封装)eg javac&java执行javac必须切换到其所在目录--太麻烦---想在任意目录下使用要执行一个命令--先在当前目录下找 ...

  3. MongoDB自动增长

    MongoDB 没有像SQL一样有自动增长的功能,如果我们需要实现ObjectId自动增长功能,可以通过编程的方式来实现.步骤如下: 1. 创建counters集合: db.createCollect ...

  4. 域名系统DNS

    一.域名系统是什么 域名系统其实就是一个把主机名解析为IP地址的名字系统. 因特网使用层次树状结构的命名方法,并使用分布式的域名系统DNS.因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采 ...

  5. ES6中的Promise用法

    Node的产生,大大推动了Javascript这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发. 当然,这并不代表迸发成了全栈.全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交 ...

  6. Matplotlib常用示例入门

    一.Matplotlib介绍 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形.通过 Matplotlib,开发者可以仅需要几行 ...

  7. Doing Homework

    Doing Homework Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Subm ...

  8. 暑假练习赛 003 B Chris and Road

    B - Chris and Road Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:262144K ...

  9. AngularJS学习篇(七)

    AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. <!DOCTYPE html> <html> <head> <meta c ...

  10. Flex 布局实例

    如图: 代码如下: <!DOCTYPE HTML> <html> <meta charset="utf-8"> <head> < ...