ionic跨頁面傳參

一、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'
                    }
                }
            })
相關文章
相關標籤/搜索