2017-08-16 137 views
0

以前的问题没有解决我的问题。ui路由器解析不起作用

我试图发送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 to $ 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]; 
      } 
     } 
    });