ui-router resolve无效

时间:2017-08-16 13:47:50

标签: angularjs angular-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>'
})

1 个答案:

答案 0 :(得分: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];
            }
        }
    });