Angular JS:从服务响应中获取子属性

时间:2016-03-14 14:10:22

标签: javascript angularjs

我刚刚开始使用Angular并尝试调整我一直关注的教程。

我的资源定义为:

.factory('Session', function ($resource) {
    return $resource('http://localhost/api/sessions');
});

我正在尝试使用这样的控制器来响应:

.controller('SessionsCtrl', function($scope, Session) {
    $scope.sessions = Session.query();
})

我遇到的问题是JSON响应的格式包含子属性中的会话:

{
  sessions: [
    {
      id: 1,
      title: "Welcome"
    {
      id: 2,
      title: "Session 1"
    }
  ]
}

如何让资源看作会话属性?

1 个答案:

答案 0 :(得分:0)

如果您的服务是发送对象而不是数组,则应在其声明中添加 isArray:false

yourApp.factory('Session', function ($resource) {
    return $resource(
        'http://localhost/api/sessions',
        {},
        {'query': {method: 'GET', isArray: false }}
    );
});

在您的控制器中,您可以使用回调

yourApp.controller('SessionsCtrl', function($scope, Session) {
    $scope.sessions = Session.query(function(result) {
         return result.sessions;
    });
});