2016-05-31 2 views
0

Я новичок в angularjs. Я работаю над требованием, когда у меня есть таблица, и в каждом столбце таблицы у меня есть текстовое поле для поиска столбца column.the: Name (текст), DateofHike (дата), Пол (текст), Зарплата (число), Зарплата (число). Когда я обыскал зарплату в первый раз, когда она работает, когда я очистил текст и искал имя, он не приносит результаты поиска.Пользовательский поиск в 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's filter и передаете ему свою функцию funSearch, которая находится в вашем контроллере. Если вы хотите использовать его в качестве фильтра, лучше создать собственный фильтр и зарегистрировать его в своем приложении. Посмотрите эту ссылку для создания пользовательского фильтра: https://docs.angularjs.org/guide/filter

Смежные вопросы