Return Rails API 在 Angular 中的搜索结果

Return search results from Rails API in Angular

我有一个 rails API 将 运行 GET 请求和 return 搜索结果。我想把它连接到前端的 angular 应用程序。

我的工厂是这样的:

app.factory('results', ['$http', function($http) {
  return $http.get('/droplets/search?search=' + searchparam + '.json')
  .success(function(data) {
    return data;
  })
  .error(function(err) {
    return err;
  });
}]);

我的第一个问题是我不知道如何将搜索参数传递给工厂。我的表单如下所示:

<form class="form-inline" name="searchDropletsForm" ng-submit="findDroplets">
  <div class="form-group">
    <input ng-model="search_keyword" type="text" class="form-control" placeholder="Search Droplets">
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

然后在控制器中我有:

app.controller('SearchController', ['$scope', 'results', function($scope, results) {
  results(search_keyword).success(function(data) {
    $scope.results = data;
  });
}]);

这里的问题是知道如何将来自 ng-model="search_keyword" 的表单参数传递到控制器,然后传递到工厂,以便我可以执行搜索。

你的工厂需要稍作改动:

app.factory('results', ['$http', function($http) {
  return { 
    search : function (searchparam) { 
      return $http.get('/droplets/search?search=' + searchparam + '.json')
    }
  }
}]);

您的控制器也需要更改:

app.controller('SearchController', ['$scope', 'results', function($scope, results) {
  results.search($scope.search_keyword).success(function(data) {
    $scope.results = data;
  });
}]);