简体   繁体   English

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

[英]Unable to filter some value from table using angular.js

i am using some Roman value( ie-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. 我在表中使用了一些罗马值( ie-I,II,III,......VIII ),但是当尝试使用这些值对表进行过滤时,某些值正在发生过滤过程,而某些值却未发生使用angular.js。 Please check my code below. 请在下面检查我的代码。

subject.html: 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: 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 or II ,则未显示所有值。实际上,我对此问题感到困惑,因为某些值过滤器正常工作,但对于某些情况价值不起作用。请帮助我解决此问题。

I think it is the way how filter works. 我认为这是filter工作的方式。 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 我认为您应该sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }:true使用sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }:true sub in subjectData | filter:{course_name:search.value, semester:semesterSearch.value }:true . sub in subjectData | 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. 注意filter末尾的true值-这使比较严格。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM