2017-08-16 20 views
0

以前の質問は私の問題を解決しませんでした。ui-router解決が機能していません。

res.dataを別の機能で送信しようとしています。しかし、res.data[somevalue]を送ってもうまくいきません。基本的には、私の応答はオブジェクトの配列です。私は配列から特定のオブジェクトを送信したい。配列の送信は動作します。

Service.js

getPlayer: function(playerName){ 
    return $http.get('../data/player.json',{ 
     cache: true 
    }).then(function(res){ 
     res.data.forEach(function(element) { 
      if(element.name == playerName){ 
       console.log(element); 
       return element; 
      } 
     }); 
    }); 
} 

name:'player', 
    url:'/players/{playerName}', 
    component:'player', 
    resolve:{ 
     player: function(PlayerService, $transition$){ 
      return PlayerService.getPlayer($transition$.params().playerName); 
     } 
    } 

コンポーネント

angular.module('playerApp').component('player',{ 
    bindings: {player:'<'}, 

    template: '<div class="panel panel-success">'+ 
    '<div class="panel-heading">'+ 
     '<h3 class="panel-title">Details</h3></div>'+ 
    '<div class="panel-body"><img height=300 width= 100% src="{{$ctrl.player.image}}">'+ 
    '<strong>Name:</strong> {{$ctrl.player.name}} </br>'+ 
    '<strong>Age:</strong> {{$ctrl.player.age}}</br>'+ 
    '<strong>Country:</strong> {{$ctrl.player.country}}</br>'+ 
    '<strong>Club:</strong> {{$ctrl.player.club}}</br>'+  
    '</div></div>' 
}) 
+0

なぜプランナーを作成しませんか? – anu

+0

$ transition $ .params()。playerNameを$ stateParams.playerNameに変更してみてください。 – Vivz

+0

@Vivzパラメータが渡されていますが、問題はありません。 –

答えて

1

は、関数getPlayers機能を変更し、それが働きました。

getPlayer: function(playerName){ 
    return $http.get('../data/player.json',{ 
     cache: true 
    }).then(function(res){ 
     for(var i in res.data){ 
      if(res.data[i].name==playerName){ 
       console.log(res.data[i]); 
       return res.data[i]; 
      } 
     } 
    }); 
関連する問題