角度搜索有问题

时间:2015-02-14 16:40:08

标签: javascript json angularjs filter

我是棱角分明的新手并且在实施“实时搜索”时遇到了一些困难。功能类型。我将我的JSON设置为javascript文件中的变量,我能够在html中显示它没有问题。然后我有一个'列表'用于改变显示器尺寸的收音机盒。这也是功能性的。但是,当访问用另一个单选按钮表示的反向过滤器选项时,我遇到了麻烦。预期的结果是用他们的名字反过来过滤书籍标题,你没有任何反应。如果您想查看结构,Here是我的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;
});  

1 个答案:

答案 0 :(得分:0)

我想出来了。角度过滤器不适用于json对象,而是数据必须采用json数组的形式。我删除了包含大括号的最高级别,并用方括号替换它们除了删除数字和冒号,如“1272:”,可以在我发布的json文件中看到。采取这些步骤将我的数据转换为json数组,并允许我使用实时搜索功能。