Javascript 以angularjs显示的条件筛选列表

Javascript 以angularjs显示的条件筛选列表,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,我在尝试筛选以ng有条件重复显示的列表时遇到了一个问题:如果搜索词以#开头:按书籍筛选仅;否则:按用户名筛选仅 这是我的确切发行版本的密码笔: 我的名单如下: $scope.users = [ { username: 'clem', books: [ { value: 'kafka' }, { value: 'maupassant' } ] }, { username: 'sam', books: [ { value: 'Balzac' },

我在尝试筛选以ng有条件重复显示的列表时遇到了一个问题:如果搜索词以#开头:按书籍筛选;否则:按用户名筛选

这是我的确切发行版本的密码笔:

我的名单如下:

$scope.users = [
{
  username: 'clem',
  books: [
    { value: 'kafka' },
    { value: 'maupassant' }
  ]
},
{
  username: 'sam',
  books: [
    { value: 'Balzac' },
    { value: 'Zola' },
    { value: 'Kafka' }
  ]
}
];
以下是在该网站上运行的相同代码片段:

angular.module('ionicApp',['ionic']))
.controller('MyCtrl',函数($scope){
$scope.users=[{
用户名:“clem”,
书籍:[{
价值观:“卡夫卡”
}, {
价值观:“莫泊桑”
}]
}, {
用户名:“sam”,
书籍:[{
值:“巴尔扎克”
}, {
价值观:“左拉”
}, {
价值观:“卡夫卡”
}]
}];
$scope.$watch(函数(){
返回$scope.search;
},函数(){
如果(scope.search.length>0){
如果($rootScope.search[0]='#'){
//只通过书本过滤
}否则{
//仅按用户名筛选
}
}
},对);
});
正文{
游标:url('http://ionicframework.com/img/finger.png汽车,;
}

离子列表指令
取消
{{user.username}
{{game.value}

创建一个:


我认为用手表来达到这样的目的,从我的观点来看,这是一种误用。自定义过滤器最适合它。
.filter('PrettyGoodPancakeFilter', function () {
  return function(items, filterBy) {
    if (filterBy.indexOf('#') === 0) {
      return items.filter(function (item) {
        return item.username.indexOf(filterBy) > -1;
      });
    } else { 
      // filter by books
    }
  }
});