【问题标题】:Want to make http get request only if text is typed in input field ANGULARJS仅当在输入字段 ANGULARJS 中键入文本时才想发出 http 获取请求
【发布时间】:2015-07-23 11:30:23
【问题描述】:

数据来自本地 json 文件,但我希望它仅在输入字段中输入 searchText(在按键上)时发出 http.get 请求

  <input type="text" class="form-control" ng-model="searchText">

我将在下表中显示结果:

<table ng-if="searchText" class="searchResults table table-bordered table-hover table-responsive"> 
  <tr>
    <th>DLL ID</th>
    <th>KVK Nummer</th>
    <th>Company Name</th>
  </tr>

  <tr ng-repeat="data in getData | filter: customFilter">
   <td>{{data.Id}}</td>
   <td>{{data.stTax_ID_VAT_Number}}</td>
   <td>{{data.AccountName}}</td>
</table>

到目前为止,我在控制器中如下:

    $scope.searchText = undefined;

    if($scope.searchText){
    $http.get('data/json_sample/DV_IC_01.json')
            .success(function(data){
                $scope.allData = data;
                $scope.getData = $scope.allData.d.results;
            });
}
    $scope.customFilter = function(row){
        if (!$scope.searchText){
                return true;
            }

        return (row.stTax_ID_VAT_Number.indexOf($scope.searchText) !== -1) || (row.AccountName.toLowerCase().indexOf($scope.searchText.toLowerCase()) !== -1);
    }

【问题讨论】:

  • 在 ng-keypress 上发送 $http 并检查 seachText 的值

标签: javascript angularjs http http-get angular-promise


【解决方案1】:

我会使用指令ng-change

<input type="text" class="form-control" ng-model="searchText" ng-change="getData()">

在您的控制器内部:

$scope.getData = function(){
  //implement your $http logic.
}

【讨论】:

  • 我没有看到那个选项,我应该在标题中添加文字吗?
  • 在我的答案左上角的赞成/反对分数下,应该有一个复选标记。只需单击它即可将问题标记为已解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
相关资源
最近更新 更多