2015-09-28 2 views
0

Я создаю небольшое приложение. Мне нужно загрузить github emoji. Я использую для этого нерегулярную связь. Я установил restangular BaseUrl как:Почему мой объект Restangular пуст?

RestangularProvider.setBaseUrl('https://api.github.com'); 

Что мне нужно теперь я хочу, чтобы получить некоторые Emoji, который я определил в массиве. Что:

$scope.emojiNames = ['tokyo_tower', 'tongue', 'tractor', 'traffic_light', 'train', 'tiger', 'red_car']; 

    $scope.emojisObj = Restangular.one("emojis").get(). 
    then(function(res) { 
     return ($scope.emojiNames).map(function(emoji) { 
      return res[emoji]; 

     }, function(err) { 
      console.log("ERR:", err); 
     }); 
    }); 

Хотя утешая emojisObj, она показывает соответствующие значения URL.

Но при связывании emojisObj в Html он отображается как пустой. Где я ошибся?

Мой Html код:

<span ng-repeat="emoji in emojisObj track by $index"> 
    <img ng-src="{{emoji}}" height="100px" width="100px"/> 
</span> 

ответ

0

Вы не можете вернуть изнутри обещание. Что вы здесь делаете, что вы возвращаете Restangular.one(). Получить до $ рамки, если вы хотите, чтобы отменить отображение отклика это должно быть сделано, как Тхи

Restangular.one("emojis").get().then(function(res) { 
    var mapped = []; 
    $scope.emojiNames).map(function(emoji) { 
     mapped.push(res[emoji]); 
    }); 
    $scope.emojisObj = mapped; 

}, function(err) { 
     console.log("ERR:", err); 
}); 

Или непосредственно

Restangular.one("emojis").get().then(function(res) { 
    $scope.emojisObj = []; 
    $scope.emojiNames).map(function(emoji) { 
     $scope.emojisObj.push(res[emoji]); 
    }); 

}, function(err) { 
     console.log("ERR:", err); 
});