2017-04-03 4 views
0

angular.module('myApp.controller', []).controller('firstController', ['$scope', '$state', function($scope, $state) { 
$scope.loadView2 = function() { 
    $state.go('secondView', { 
     firstname: $scope.firstname, 
     lastname: $scope.lastname 
    }); 
    }; 
}]); 

angular.module('myApp.controller').controller('secondController', 
    function($scope, $stateParams, $state) { 
     console.log($state.params); // empty object 
     $scope.firstname = $stateParams.firstname; // empty 
     $scope.lastname = $stateParams.lastname; //empty 
}); 

されるプロジェクトのためのparamsが空であると私のルートは

を以下れます
angular.module('myApp', ['myApp.controller', 'ui.router']).config(['$stateProvider', function($stateProvider) { 
$stateProvider.state('firstView', { 
    url: '/fisrt-view', 
    templateUrl: './partials/view1.html', 
    controller: 'firstController' 
}); 
$stateProvider.state('secondView', { 
    url: '/second-view', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController' 
}); 

しかし、私は常にview2で空白のオブジェクトを取得します。

答えて

2

このように、あなたは2番目のビューでのparamsを定義する必要がビュー間でデータを渡すために:あなたはビューに切り替えるときに

$stateProvider.state('secondView', { 
    url: '/second-view', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController', 
    params: { 
    mynewparam: null 
    } 
}); 

$state.go('secondView', {mynewparam: 'newParam'}); 

をして、ビュー内のデータをretriveコントローラは次のようになります:

$scope.mynewparam = $stateParams.mynewparam; 

注意さらに、$ stateProvidえー、ここでの例:

$stateProvider 
    .state('firstView', { 
    url: '/fisrt-view', 
    templateUrl: './partials/view1.html', 
    controller: 'firstController' 
    }) 
    .state('secondView', { 
    url: '/second-view', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController', 
    params: { 
     mynewparam: null 
    } 
    }); 
+0

@ RahulDeyうれしいことですが、承認された解決策は高く評価されます。ハッピーコーディング:) –

0

あなたは次のようにパラメータを定義する必要があります。

$stateProvider.state('secondView', { 
    url: '/second-view?firstname&lastname', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController' 
}); 

か:

$stateProvider.state('secondView', { 
    url: '/:firstname/:lastname/second-view', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController' 
}); 

か:

$stateProvider.state('secondView', { 
    url: '/second-view', 
    templateUrl: './partials/view2.html', 
    controller: 'secondController', 
    params: { 
     firstname: null, 
     lastname: null, 
    } 
}); 

はここで関連sectionからですui-routerレポ

0

あなたsecondView状態は次のようになります。

$stateProvider.state('secondView', { 
    url: '/second-view', 
    params: { 
     firstname: null, 
     lastname: null 
    }, 
    templateUrl: './partials/view2.html', 
    controller: 'secondController' 
}); 

それを修正する必要があること。

関連する問題