2017-03-03 30 views
0

私はリンクをクリックすると経路を変更する必要があり、他の状態にいくつかのパラメータを送信するシナリオがあります。状態パラメータが他の状態になっていない

ここでの問題は、私が他の状態でそれを慰めるときのparamsが空である

<div ng-repeat="items in vm.Items"> 
    <a ng-click="vm.goToDetails(items.id)">{{items.title}}</a> 
</div> 

コントローラー:

vm.goToDetails = function(Id) { 
    $state.go('Details', { 
      'fid': Id 
    }); 
} 

ルート:任意の助けをいただければ幸いです

$stateProvider.state('Details', { 
    url: '/details/:fid', 
    resolve: { 
     selectedProduct: ['$state', '$stateParams', 
      function($state, $stateParams) { 
       console.log($stateParams.fid) //getting empty string here 
       console.log($state.params.fid)//getting undefined here 
      } 
     ] 
    } 
}); 

。あなたは、ルートURLにパラメータ名を指定する必要が

+0

vm.goToDetails console.log(ID)にコンソールを追加すると、適切なデータが得られますか? –

+0

'{{item.title}}'の結果を見ることができますか? – Jax

+0

はURLにparamsが表示されていますか? – tomek550

答えて

0

: /いくつかのルート/:

+0

上記の経路で私はURLにそれを言及していることがわかります –

+0

指定されていなくても動作する必要があります –

0

をFID私はコードですべての問題を見つけられませんでした、問題はresolved parameterの注射であるかもしれません。

コードでデモを作成しました。これはあなたに役立つかもしれません。

ここ

設定があり、繰り返しオブジェクトが含まれてい

app.config(function($stateProvider,$urlRouterProvider){ 


    $stateProvider.state('Details', { 
    url: '/details/:fid', 
    templateUrl: 'detail.html', 
    controller: 'DetailController', 
    resolve: { 
     selectedProduct: ['$state', '$stateParams', 
      function($state, $stateParams) { 
       console.log($stateParams.fid) //getting empty string here 
       alert($stateParams.fid) //getting empty string here 
       return $stateParams.fid 

      } 
     ] 
    } 
    }); 



    $stateProvider.state('login',{ 
    url: '/login', 
    templateUrl: 'login.html', 
    controller: 'LoginController' 
    }); 

    $urlRouterProvider.otherwise('/login'); 

}); 

コントローラ、

app.controller('LoginController',function($scope,$state){ 

    $scope.Items = [{id: 1,title: "Title1"},{id: 2,title: "Title2"},{id: 3,title: "Title3"}] 

    $scope.goToDetails = function(Id) { 
    console.log(Id) 
    $state.go('Details', { 
      'fid': Id 
    }); 
    } 

}) 

は、これはあなたが注入できるコントローラであるselectedProduct

app.controller('DetailController',function($scope,$state,selectedProduct){ 
    $scope.selectedProduct = selectedProduct; 
}) 

PLEASE CHECK THIS DEMO

+0

@ tania saxena、私の答えをチェックしてください。 – Sravan

関連する問題