javascript - 在服务中无法访问 Angular ngResource 响应对象

标签 javascript angularjs

angular.module('myApp.services', ['ngResource']).
  factory('Imgur', function($resource, $http) {

    $http.defaults.useXDomain = true;
    $http.defaults.headers.common['Authorization'] = 'Client-ID 123123123123';

    var albumsService = {};

    var albums = $resource('https://api.imgur.com/3/account/me123/albums').get();

    //I can access albums.data in ng-repeate in view, but not here?
    //returns undefined
    console.log(albums.data);

    albumsService.albums = function() {
      return albums;
    };

    return albumsService;
  });

使用这个有效

  <ul class="nav nav-pills">
    <li ng-repeat="album in imgur.albums().data">
      {{album.title}}
    </li>
  </ul>

最佳答案

为了在您的服务中使用专辑信息,将回调传递给get():

var albums = $resource('https://api.imgur.com/3/account/me123/albums').get(function () {
    // Log out all the titles.
    albums.data.forEach(function (album) {
        console.log(album.title);
    });
});

关于javascript - 在服务中无法访问 Angular ngResource 响应对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361326/

相关文章:

JavaScript 正则表达式 - 如何检查逗号分隔值是否超过三个

名称中带有方括号的 Javascript 对象

javascript - $watch 或 $watchCollection 不适用于 ng-repeat 内的 ng-model 引用的对象

angularjs - Angular UI Bootstrap datepicker, View 更改时回调

javascript - Bootstrap 单选按钮组 knockout 绑定(bind)不起作用

javascript - 如何更改 <td> 标签的内部值?

angularjs - 将授权 header 添加到单击的链接

javascript - C3js 图表线在 grunt 构建后隐藏

javascript - 输入[时间]不接受来自 Controller 的值

javascript - 增加弹出窗口的宽度