无法使用angular.js从表中过滤某些值

时间:2022-06-11 21:36:32

i am using some Roman value(i.e-I,II,III,......VIII) in my table but when trying to filter table using these value for some value the filtration process is happening and for some value its not happening using angular.js. Please check my code below.

我在我的表中使用了一些罗马值(即-I,II,III,...... VIII)但是当尝试使用这些值过滤表格时,过滤过程正在发生,并且某些价值没有发生使用angular.js。请检查下面的代码。

subject.html:

<table class="table table-bordered table-striped table-hover" id="dataTable" >
<colgroup>
<col class="col-md-1 col-sm-1">
<col class="col-md-2 col-sm-2">
<col class="col-md-2 col-sm-2">
<col class="col-md-2 col-sm-2">
<col class="col-md-2 col-sm-2">
<col class="col-md-2 col-sm-2">
<col class="col-md-1 col-sm-1">
</colgroup>
<thead>
<tr>
<th>Sl. No</th>
<th>
<select style="width:100%; border:none; font-weight:bold;" ng-options="sub.name for sub in noCourse track by sub.value" ng-model="search" ng-change="selectedCourseTable();" >
<!-- <option value="">Course Name</option>-->
</select>
</th>
<th>
<select style="width:100%; border:none; font-weight:bold;" ng-options="sem.name for sem in noSemestersTable track by sem.value" ng-model="semesterSearch">
<option value="">Semester</option>
</select>
</th>
<th>Subject Name</th>
<th>Short Name</th>
<th>Edit</th>
</tr>
</thead>

<tbody id="detailsstockid">
<tr ng-repeat="sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }" >
<td>{{ $index+1 }}</td>
<td>{{sub.course_name}}</td>
<td>{{sub.semester}}</td>
<td>{{sub.subject_name}}</td>
<td >{{sub.short_name}}</td>
<td>
<a href='#subject?s_i={{sub.subject_id}}'>
<input type='button' class='btn btn-xs btn-green' value='Edit'>  
</a>
</td>
</tr>   
</tbody>
</table>

For bind the data dynamically in table i have some db operation and inside the database the Roman values are also stored.Check my controller file.

为了在表中动态绑定数据,我有一些数据库操作,在数据库中也存储了罗马值。检查我的控制器文件。

subjectController.js:

$http({
        method: 'GET',
        url: "php/subject/readCourse.php",
    }).then(function successCallback(response) {
        angular.forEach(response.data, function(obj){
            var Course={'name':obj.course_name , 'value':obj.course_name};
            $scope.noCourse.push(Course);
        });
    },function errorCallback(response) {

    });
$scope.selectedCourseTable=function(){
        if($scope.search.value=='Bachelor of Technology'){
            $scope.noSemestersTable=[
            {name:"I",value: "I"},
            {name:"II",value:"II"},
            {name:"III",value: "III"},
            {name:"IV",value: "IV"},
            {name:"V",value:"V"},
            {name:"VI",value: "VI"},
            {name:"VII",value:"VII"},
            {name:"VIII",value:"VIII"}
            ];
        }
        if($scope.search.value=='Master in Technology'){
            $scope.noSemestersTable=[
            {name:"I",value: "I"},
            {name:"II",value: "II"},
            {name:"III",value:"III"},
            {name:"IV",value:"IV"}
            ];
        }
        if($scope.search.value=='Master of computer application'){
            $scope.noSemestersTable=[
            {name:"I",value:"I"},
            {name:"II",value: "II"},
            {name:"III",value:"III"},
            {name:"IV",value:"IV"},
            {name:"V",value:"V"},
            {name:"VI",value:"VI"}
            ];
        }
        if($scope.search.value==''){
            $scope.noSemestersTable=null;
        }
    }

When i am selecting the value III onward the filtering is occurring properly but when i am selecting I or II from drop down its not happening ,all values are showing.Actually i am confused about this issue for some value filter is working properly but for some value not working.Please help me to resolve this issue.

当我选择值III以后,过滤正在发生但当我从下拉选择I或II时没有发生,所有值都显示。实际上我对这个问题感到困惑,因为某些值过滤器工作正常但是对于某些价值不起作用。请帮我解决这个问题。

1 个解决方案

#1


0  

I think it is the way how filter works. The match in the way you are using it right now is not strict. I think you should use sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }:true.

我认为这是过滤器的工作方式。你现在使用它的方式匹配并不严格。我认为你应该在subjectData中使用sub filter:{course_name:search.value,semester:semesterSearch.value}:true。

Notice the true value at the end of the filter - this makes the comparison to be strict.

注意过滤器末尾的真值 - 这使得比较是严格的。

#1


0  

I think it is the way how filter works. The match in the way you are using it right now is not strict. I think you should use sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }:true.

我认为这是过滤器的工作方式。你现在使用它的方式匹配并不严格。我认为你应该在subjectData中使用sub filter:{course_name:search.value,semester:semesterSearch.value}:true。

Notice the true value at the end of the filter - this makes the comparison to be strict.

注意过滤器末尾的真值 - 这使得比较是严格的。