我有一个 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/