在現階段比較流行的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