为什么我的Restangular对象是空的?

时间:2015-09-28 11:04:12

标签: angularjs restangular

我正在创建一个小应用。我需要加载github表情符号。我正在使用restangular。 我将restangular baseUrl设置为:

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

我现在需要的是我想得到一些我在数组中定义的表情符号。这是:

$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时,它会显示相应的网址值。

但是在Html中绑定emojisObj时,它显示为空。我在哪里弄错了?

我的Html代码是:

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

1 个答案:

答案 0 :(得分:0)

你无法从内心的承诺中回归。你在这里做的是你正在返回Restangular.one()。如果要取消映射它应该做的响应,请到$ scope

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);
});