在angular中搜索的麻烦

trouble with search in angular

本文关键字:麻烦 搜索 angular      更新时间:2023-11-11

我是angular的新手,在实现"实时搜索"类型的功能时遇到了一些困难。我将JSON设置为javascript文件中的一个变量,并且我能够毫无问题地在html中显示它。然后我有一个"列表"单选框,它可以更改显示的大小。这也是功能性的。然而,我在访问反向过滤器选项时遇到了麻烦,该选项用另一个单选按钮表示。预期的结果是按照书名的名字反向过滤书名,你什么都没发生。如果您想查看结构,这是我的JSON。下面是我尝试执行过滤器反向操作的代码:

  <div class="container result">
     <div ng-class="list ? 'col-md-6' : 'col-md-4'" class="books" ng-repeat="books in books | filter:search | orderBy:'books.doc.name':reverse"> <a href="https://address/{{books.doc.name}}" target="_blank">
      <img ng-class="list ? 'col-md-2' : 'col-md-12'" ng-src="{{books.doc.thumbnail_590_url}}" alt="Click to read {{books.doc.name}}" title="Click to read {{books.doc.name}}" class="img-thumbnail" /></a>
      <h4 ng-class="list ? 'col-md-10' : 'col-md-12'">{{books.doc.name}}</h4> 
  </div>

js:

angular.module("myApp",["ngSanitize"])
.filter('replace', function () {
var pat = / /gi;
return function (text) {
    var clean = text.replace(pat, "-");
    var temp = clean.split("---");
    if (temp.length>1) {
      clean = temp[0];
    }
    return clean;
};
})
.controller("Example", function($scope, $interval) {
$scope.search = "orig";
$scope.books = books;
$scope.reverse = false;
$scope.list = false;
});  

我想明白了。角度过滤器不会对json对象起作用,相反,数据必须是json数组的形式。除了删除我发布的json文件中可以看到的数字和冒号(如"1272:")之外,我删除了最高级别的封闭花括号,并用方括号取而代之。采取这些步骤将我的数据转换为json数组,并允许我使用实时搜索功能。