Angular JS实现搜索

时间:2016-02-24 22:07:34

标签: angularjs

我有一个包含多个字段的表单。如何使用angularjs实现搜索?例如,我有以下页面:

<pre>
    <input name="title">
    <input name="isbn">
    <input name="author">
    <br/>
    <input type="submit">

    <!-- list the book information -->
    Title     Author     ISBN
</pre>

我希望根据用户对服务器搜索字段的输入显示底部列表。 注意:用户可以输入多个字段。如何在用户点击提交按钮时完成搜索?

我是否需要编写一个提交方法。如果是这样,我如何获取值并根据字段进行查询是否留空?

由于

3 个答案:

答案 0 :(得分:0)

如果你使用angularJS,你不需要提交,它将异步进行。只需在输入中添加ng模型,然后根据该模型过滤结果。像这样:

    <input name="title" ng-model="title">
    <input name="isbn" ng-model="isbn">
    <input name="author" ng-model="author>

<div filter: title | filter:isbn | filter:author >
   Title     Author     ISBN
</div>

答案 1 :(得分:0)

像这样的东西

tableViewSelectionDidChange

在你的submitFunc中你会做一个$ http请求来获取你的数据并对其进行过滤,然后将结果存储在一个数组中,并在表单下方的视图中进行ng-repeat以迭代你的结果

答案 2 :(得分:0)

基本实现应如下所示:

代码:

app.controller('SampleController', ['$scope', function($scope) {
  var search = function() {
    yourAjaxMethod({author: $scope.author, isbn: $scope.isbn, title: $scope.title}).then(function(list) {
      $scope.list = list;
    });
  }
  $scope.$watch('author', search);
  $scope.$watch('isbn', search);
  $scope.$watch('title', search);
  // the init loading
  search();
}])

标记:

<pre>
  <input name="title">
  <input name="isbn">
  <input name="author">
  <br/>


  <!-- list the book information -->
  <table>
   <tr>
     <th>Title</th>
     <th>Author</th>
     <th>ISBN</th>
   </tr>
   <tr ng-repeat="book in list">
     <td ng-bind="book.title"></td>
     <td ng-bind="book.author"></td>
     <td ng-bind="book.isbn"></td>
   </tr>
</table>