2015-10-06 129 views
1

我正在爲當前項目使用Angularjs。我將參數從一個狀態傳遞到另一個狀態。正確獲取。但是,無論何時刷新頁面,該參數都會返回爲空。這是我的工作代碼。路由部分和家庭控制器和教練員控制器。在Angularjs中將URL參數從一種狀態傳遞到另一種狀態

.state('search.trainer', { 
    params: {'ind_array': null}, 
    url: '/trainer', 
    templateUrl: 'tpl/trainer.search.html', 
    resolve: {   
     deps: ['uiLoad', 
     function (uiLoad) { 
    return uiLoad.load(['js/controllers/trainerCtrl.js']); 
         }], 
    ind_array: ['$stateParams', function($stateParams) { 
       return $stateParams.ind_array; 
      }], 
     }, 
    controller: "trainerctrl", 
     }); 
myApp.controller('homectrl', function($scope, $state, $stateParams) { 
     if($scope.search=="trainers"){ 
    $state.go('search.trainer', { ind_array : $scope.Selectdid}); 
    } 
}); 

    myApp.controller('trainerctrl', function($scope, $state, $stateParams, ind_array) { 

     console.log(ind_array); 

    }); 
+0

你可以在URL本身中編碼參數嗎?讓我們說:'url:'/ trainer /:trainer_id'' –

+0

@Paulo我也試過。上面提到,使用像上面一樣..我的頁面被重定向,但是,URL沒有變化 –

回答

2

爲什麼不存儲的localStorage或sessionStorage的,而你的 「最後的狀態」?並且,當您加載頁面時,如果該值爲null,則從localStorage中獲取並恢復視圖狀態。

UPDATE

1)每次你得到的最後狀態的版本時,只是做一個window.localStorage.setItem( 'myLastState',狀態);

2)當您加載應用程序,而且也沒有狀態,window.localStorage.getItem(「myLastState」)應該會提供你所需要的

第一負載你就需要提供一些默認的那些狀態。

+0

我從來沒有與localStorage/sessionStorage一起工作可以請我指導我如何使用localStorage/sessionStorage實現 –

+0

這很簡單。 ** sessionStorage **基本相同,唯一的區別是localStorage在關閉瀏覽器時保留數據,而sessionStorage在關閉時「過期」。 對於使用本身,請參閱更新的答案。 –

相關問題