一、controller中添加$cacheFactory服務。
javascript
eg:從home頁傳遞name到login頁面顯示html
angular.module('ysw.controllers', []) .controller('HomeCtrl', function ($scope, $cacheFactory, $state) { try { var name = '123'; $cacheFactory('cache').put('name',name);//建立一個緩存對象,再存name值 $scope.goTo = function () { $state.go('login'); }; } catch (e) { console.error(e); } }) .controller('LoginCtrl', function ($scope, $cacheFactory) { try { $scope.name = $cacheFactory.get('cache').get('name');//獲得緩存對象再取值 } catch (e) { console.error(e); } })
PS:銷燬對象cachejava
$cacheFactory.get('cache').destroy();
刪除鍵值對name緩存
$cacheFactory.get('cache').remove('name');
如下例子傳參方式均爲:從home頁面傳遞name和age到login頁面:app
angular.module('ysw.controllers', []) .controller('HomeCtrl', function ($scope, $state) { try { var name = 'zella'; var age = '20'; $scope.goTo = function () { $state.go('login',{name:name,age:age});//傳參方式 $state.go('login',{object:JSON.stringify(object)});//所傳參數object爲對象 }; } catch (e) { console.error(e); } }) .controller('LoginCtrl', function ($scope,$stateParams) { try { $scope.name = $stateParams.name; $scope.age = $stateParams.age;//接收參數方式 $scope.object= JSON.parse($stateParams.object);//所接收參數爲對象 } catch (e) { console.error(e); } })
二、接收參數的頁面url中添加參數,以/:a/:b...等的方式url
.state('login', { url: '/login/:name/:age', cache: 'false', views: { 'default': { templateUrl: 'templates/login.html', controller: 'LoginCtrl' } } })
三、接收參數的頁面url中添加參數,以/{a}/{b}...等的方式spa
.state('login', { url: '/login/{name}/{age}', cache: 'false', views: { 'default': { templateUrl: 'templates/login.html', controller: 'LoginCtrl' } } })
四、在app.js中添加params參數code
.state('login', { url: '/login', cache: 'false', params:{name:'',age:''}, views: { 'default': { templateUrl: 'templates/login.html', controller: 'LoginCtrl' } } })