Angular修改并使用页面上的按钮重新提交http.get请求

时间:2016-01-13 12:50:32

标签: angularjs

我使用Angular http.get从弹性搜索中提取数据并使用angular显示输出。

最初的概念工作正常,但我想要做的是在页面上添加一个按钮,以便能够运行经常需要的查询,该查询将修改显示的数据并排除包含特定单词或短语的记录。

我认为这可以通过让按钮设置http.get请求范围内的变量值然后重新提交get请求来实现。

到目前为止,我有:

<body>
       <form>
    <input type="text" placeholder="RemoveEntires" class="form-control" ng-model="formData.input1">
    <input type="button" value="RemoveEntries containing text" ng-click='DocView()'>
</form>
    <script>
    var app = angular.module('DisplayDoc', []);
    var baseUrl = "http://elasticserver:9200/app/_search?q=product:balls";
    var queryURL = baseUrl + "+!color:"; + formData.input1;
    var completeURL = queryURL + "&sort=DateTime&size=1000&default_operator=AND";
    app.controller('DocView', function($scope, $http) {
        $http({method: 'GET', url: completeURL})
        .success(function(response) {$scope.jsondata = response.hits.hits;});
    });
</script>

如果我在表单中输入“red”,我希望它将http.get请求重新提交给elasticsearch,然后将弹出的产品中的红球排除。

目前这对我不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做。

控制器:

.controller('MainCtrl', function ($scope, $http) {
    $scope.search = '';
    var baseUrl = "http://elasticserver:9200/app/_search?q=product:balls+!color:";

    $scope.submit = function() {
        $http.get(baseUrl + $scope.search + "&sort=DateTime&size=1000&default_operator=AND")
            .then(function(response) {
                $scope.jsondata = response.hits.hits;
            });
    }
});

然后像这样构建表单:

<form novalidate>
  <input type="text" ng-model="search">
  <button type="submit" ng-click="submit()">Search</button>
</form>