如何调用自定义get方法

时间:2015-10-08 14:07:55

标签: javascript angularjs angularjs-restmod

我列出了以下用户:

/api/users/

我想通过致电:

列出管理员用户
/api/users/admins

尽管看似微不足道,但我无法找到办法。

2 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪种编程语言,但我将使用PHP Laravel和AngularJS给您一个示例。

API

Route::get('/api/users', function ()
{
    $users = App\User::all();
    return $users;
});

Route::get('/api/users/admin', function ()
{
    $users = App\User::where('admin', true)->get();
    return $users;
});

FRONT

angular.module('app', [])
.service('api', ['$http', function ($http) {
  function getUsers() {
    return $http.get('/api/users');
  }
  function getAdminUsers() {
    return $http.get('/api/users/admin');
  }
  this.getUsers = getUsers;
  this.getAdminUsers = getAdminUsers;
}])
.controller('UserCtrl', ['$scope', 'api', function ($scope, api) {
  $scope.users = [];
  $scope.adminUsers = [];
  api.getUsers()
    .then(function success(response) {
      $scope.users = response.data;
    }, function error(response) {
    });
    api.getAdminUsers()
    .then(function success(response) {
      $scope.adminUsers = response.data;
    }, function error(response) {
    });
}]);

答案 1 :(得分:0)

很抱歉我的问题缺乏细节。我实际上是在询问有关angular-restmod模块的问题。

这是我最后所做的:

module.factory('CustomMethods', ['restmod', 'RMUtils', function CustomMethodsMixin(restmod, RMUtils) {
  return restmod.mixin(function() {
    this.define('Model.$customCollection', function(_url, params) {
      var original = this;
      return this.$collection(params, {
        $urlFor: function() {
          return RMUtils.joinUrl(original.$url(), _url);
        }
      });
    });
    return this;
  });
}]);

并将我所有的api暴露给它:

restmodProvider.rebase('CustomMethods')