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

Angular JS: Get subproperty from service response

本文关键字:获取 属性 响应 服务 JS Angular      更新时间:2023-09-26

我刚刚开始使用 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"
    }
  ]
}

如何使资源看起来像会话属性?

如果您的服务发送的是对象而不是数组,则应在其声明中添加 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;
    });
});