ruby-on-rails - 返回 Angular 中 Rails API 的搜索结果

标签 ruby-on-rails angularjs factory

我有一个 Rails API,它将运行 GET 请求并返回搜索结果。我想将其连接到前端的 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>

然后在 Controller 中我有:

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

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

最佳答案

您的工厂需要稍微改变:

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

您的 Controller 也需要更改:

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

关于ruby-on-rails - 返回 Angular 中 Rails API 的搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251614/

相关文章:

ruby-on-rails - 除了 rails3 中的 1,所有带 https 的 url

ruby-on-rails - 为 has_many :through relationship in Rails 3 创建 Controller 和 View

javascript - 将 AngularJS 指令迁移到 Angular 2.x+ 指令作为 HTML 装饰器

AngularJS指令链接功能未执行

c# - 将一个工厂注入(inject)一个类

dart - 构造函数不能有类型参数。dart(type_parameter_on_constructor)

ruby-on-rails - 如何猴子修补 Rails 附带的 rake 任务?

javascript - 在嵌套指令中使用工厂函数

java - 在不调用所需的初始化方法的情况下防止子类实例化的正确方法?

ruby-on-rails - FactoryGirl 和协会