在现阶段比较流行的angularjs框架中;路由是一个比较重要的应用;angularjs的单页面是其强大功能之一;
所有的页面其实就只是在一个页面就实现的:angularjs通过对路由的控制来进行页面的跳转;
使用过angularjs的开发者都知道怎么使用ngRoute服务进行页面控制;但是楼主在最近的开发之中;
遇到一个比较棘手的问题:原本app,js已经配置好的路由,每一个页面在使用时对应自己所拥有的路由和控制器;然而有些页面需要使用其他页面的路由进行跳转;
比如:在一个新闻网后台管理系统中建立站点的时候;需要为站点新建一个主页面;第一次尝试解决的方法是在app.js中配置路由;在原本站点路由下添加页面新建路由;
问题是在使用angularjs中的ngroute服务回退的时候;页面会直接跳转到站点列表的路由而不是站点新建路由;此时楼主的解决方法改变:
首先增加一个按钮:但是不删除之前的回退按钮;通过ng-show控制显示其中一个按钮;当新建页面时是从其他路由跳转而不是正常路由时:显示新增回退按钮;在控制器中对这个按钮增加如下函数操作:
$scope.cancel = function() {
//此处使用js原生方式回退
history.back();
<span style="white-space:pre"> </span>//histroy.go(-1);
而另一个回退按钮则是使用angularjs中的$state.go("跳转路径");来实现
其实$state.go("url"),这个方法多用于controller里面的地址跳转,比如功能实现后,跳入某个界面。
文章来自:http://blog.csdn.net/licheng11403080324/article/details/50825236