2016-05-31 5 views
0

私はangularjsを初めて利用しています。私はテーブルがあり、テーブルの各列には、名前(テキスト)、DateofHike(日付)、性別(テキスト)、給与(数値)、列を含む列を検索するためのテキストボックスがあります。 Salary(number)。私がSalaryを最初に検索したときに、テキストをクリアして名前を検索したときに、検索結果が表示されません。Angularjsでのカスタム検索

私のjsファイルのコード

var FilterApp = angular.module("FilterModule", []); 
FilterApp 
    .controller("RowsToDisplay", function ($scope) { 
     var EmpDetails = [ 
      { name: "phani_1", DOB: new Date("November 9 2008"), Gender: "Male", SalaryNumber: 8000 }, 
      { name: "phani_2", DOB: new Date("January 31 2010"), Gender: "Male", SalaryNumber: 17200 }, 
      { name: "phani_7", DOB: new Date("October 31 2012"), Gender: "Male", SalaryNumber: 23500 }, 
      { name: "phani_4", DOB: new Date("October 11 2012"), Gender: "Male", SalaryNumber: 2500 }, 
      { name: "phani_5", DOB: new Date("November 30 2013"), Gender: "Male", SalaryNumber: 41750 }, 
      { name: "phani_6", DOB: new Date("December 31 2014"), Gender: "Male", SalaryNumber: 48450 } 
     ];  
     $scope.funSearch = function (item) { 
      if ($scope.SearchText == undefined) { 
       return true; 
      } 
      else { 
       if ($scope.SearchText.name != undefined) { 
        if (item.name.toLowerCase().indexOf($scope.SearchText.name.toLowerCase()) != -1) { 
         return true; 
        } 
       } 
       else if ($scope.SearchText.Gender != undefined) { 
        if (item.Gender.toLowerCase().indexOf($scope.SearchText.Gender.toLowerCase()) != -1) { 
         return true; 
        } 
       } 
       else if ($scope.SearchText.SalaryNumber != undefined) { 
        var compare = item.SalaryNumber.toString(); 
        var comparer = $scope.SearchText.SalaryNumber; 
        alert(comparer); 
        if (compare.indexOf(comparer) != -1) { 
         return true; 
        } 
       } 

      } 
      return false; 
     } 
    }); 

私のhtmlコード

<tr> 
        <td><input type="text" placeholder="Search name" ng-model="SearchText.name" /></td> 
        <td><input type="text" placeholder="Search DOB" ng-model="SearchText.DOB" /></td> 
        <td><input type="text" placeholder="Search Gender" ng-model="SearchText.Gender" /></td> 
        <td><input type="text" placeholder="Search SalaryNumber" ng-model="SearchText.SalaryNumber" /></td> 
        <td><input type="text" placeholder="Search currency" ng-model="SearchText.SalaryNumber" /></td> 
       </tr> 
       <tr ng-repeat="objEmpDetail in EmpDetails | orderBy:sortColumn:reverseSort | filter:funSearch"> 
        <td>{{objEmpDetail.name | uppercase}}</td> 
        <td>{{objEmpDetail.DOB|date:"dd/MM/yy"}}</td> 
        <td>{{objEmpDetail.Gender|lowercase}}</td> 
        <td>{{objEmpDetail.SalaryNumber| number:2}}</td> 
        <td>{{objEmpDetail.SalaryNumber| currency:"$":1}}</td> 
       </tr> 

私を提案してください。

+1

質問を編集し、エディタでコードサンプルボタンを使用してコードを適切にフォーマットしてください – TMG

答えて

0

Angularのfilterを使用していて、コントローラにあるfunSearch関数を渡しているようです。フィルタとして使用する場合は、カスタムフィルタを作成してアプリに登録してください。 カスタムフィルタを作成するには、このリファレンスをご覧ください。https://docs.angularjs.org/guide/filter

関連する問題