2016-03-28 11 views
0

私は配列を持っています私は$scope.AuthorArray="sridhar"のような単一の値で配列をフィルタリングできますが、複数の値を持つフィルタは使用できません$scope.AuthorArray="sridhar,Alan"検索ろ過値

は私を助けて、私ははっきりとあなたの質問を得ていないのですが、私の知る限りそれを理解できるように、私はあなたがカスタムフィルタを作成することです必要なものだと思う:)

+0

は、それはあなたがフィルタリングしようとしているものは明らかではありません。フィルタリングしようとしている値の配列はどのように見えますか?あなたの質問のためのより多くのコード/文脈を提供してください。 – ryanyuyu

答えて

0

実際に私が使用している他の方法。感謝:)

`

$scope.authorChange = function() { 
      var ppick = SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan; 
      var filteredArticlestemp = []; 
      $scope.authorarray= getUsers(ppick); 
      //$scope.authorarray = $scope.authorarray.join(); 
      for (var j = 0; j < $scope.authorarray.length; j++) { 
       for (var i = 0; i < $scope.filteredArticles.length; i++) { 
        if ($scope.filteredArticles[i].Author == $scope.authorarray[j]) { 
         filteredArticlestemp.push($scope.filteredArticles[i]); 
        } 
       } 
      } 
      $scope.filteredArticles = filteredArticlestemp; 
     } 
     function getUsers(peoplePicker) { 

      // Get information about all users. 
      var users = peoplePicker.GetAllUserInfo(); 
      var userInfo = []; 
      if (users.length > 0) { 
       for (var i = 0; i < users.length; i++) { 
        var user = users[i]; 
        userInfo.push(user.DisplayText); 

       } 
      } 


      return userInfo; 
     } 

`

`<div id="peoplePickerDiv" ng-model="authorsearch"></div> 
<input type="button" value="Refine" ng-click="authorChange()" />` 
1

新たなんです。この例では

matchMyCriteriaAuthorArrayアレイ内で使用可能な名前のリストとアレイ内のすべての項目に一致します。

HTML:

<div ng-repeat="item in items | filter: matchMyCriteria()"> 
{{ item }} 
</div> 

JS:

$scope.items = [{title: "abc", author: "Alan", .....}, ......]; 
$scope.AuthorArray = ["sridhar", "Alan"]; 
$scope.matchMyCriteria = function() { 
    return function(item) { 
    return ($scope.AuthorArray.indexOf(item.author) > -1); 
    }; 
}; 

あり、それのための別の解決策があると私はそれが良いものであることを前提としています。

この例では、myFilterは、著者の配列に基づいて項目の配列をフィルタリングするために使用されます。

HTML:

<div ng-repeat="item in items | myFilter: AuthorArray"> 
    {{item}} 
</div> 

JS:私はフィルタをトリガするボタンを使用ng-repeatにフィルタを使用する代わりknow.But

app.filter('myFilter', function() { 
    return function(list, criteria) { 
    return list.filter(function(l) { 
     return (criteria.indexOf(l.author) > -1); 
    }); 
    }; 
});