Angularjs 如何在ng repeat中使用指令进行排序?
当我进行排序时,不会对图像和我使用>指令绑定的其他文件进行排序 类HTMLAngularjs 如何在ng repeat中使用指令进行排序?,angularjs,sorting,angularjs-directive,ng-repeat,Angularjs,Sorting,Angularjs Directive,Ng Repeat,当我进行排序时,不会对图像和我使用>指令绑定的其他文件进行排序 类HTML <table style="width:100%"> <thead> <tr> <th style="width:10%" class="text-center"> <a href="" ng-click="sortType = 'Group'; sortReverse = !sortReverse">
<table style="width:100%">
<thead>
<tr>
<th style="width:10%" class="text-center">
<a href="" ng-click="sortType = 'Group'; sortReverse = !sortReverse">
Group
<span ng-show="sortType == 'Group' && !sortReverse" class="fa fa-caret-down"></span>
<span ng-show="sortType == 'Group' && sortReverse" class="fa fa-caret-up"></span>
<span ng-show="sortType != 'Group'" class="fa fa-sort"></span>
</a>
</th>
<th>
<a href="" ng-click="sortType = 'Name'; sortReverse = !sortReverse">
Name
<span ng-show="sortType == 'Name' && !sortReverse" class="fa fa-caret-down"></span>
<span ng-show="sortType == 'Name' && sortReverse" class="fa fa-caret-up"></span>
<span ng-show="sortType != 'Name'" class="fa fa-sort"></span>
</a>
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="objdata in students">
<td style="width:10%" class="text-center">
<span dirGroup="objdata.Group"></span>
</td>
<td style="width:90%" class="text-center">
{{objdata.Name}}
</td>
</tr>
</tbody>
{{objdata.Name}
当我进行排序时,不会对图像和我使用>指令绑定的其他文件进行排序
angular
.module('应用程序')
..指令('dirGroup',[函数(){
返回{
限制:“A”,
范围:{
目录组:'='
},
编译:函数(元素){
元素removeAttr('dirGroup');
返回函数(范围、元素、属性){
var objdata=scope.dirGroup;
var GroupID=objdata;
var strHtml_StatusImage='';
if(GroupID==0){
strHtml_StatusImage='';
}
else if(GroupID==1){
strHtml_StatusImage='';
}
else if(GroupID==2){
strHtml_StatusImage='';
}
else if(GroupID==3){
strHtml_StatusImage='';
}
else if(GroupID==4){
strHtml_StatusImage='';
}
else if(GroupID==5){
strHtml_StatusImage='';
}
否则{
strHtml_StatusImage='';
}
var link=''+strHtml_StatusImage+'';
元素。追加(链接);
//}
}
}
}
}])
.controller('StudentController',['$scope',StudentController])
函数StudentController()
{
var vm=$scope;
var students=[{Name:“Bhadresh”,组:1},{Name:“Mihir”,组:5},
{姓名:“莫希尼”,组别:1},{姓名:“穆库尔”,组别:1},
{姓名:“Dhaval”,组别:3},{姓名:“Dhiren”,组别:4},
{名称:“Sandeep”,组:4},{名称:“Jignesh”,组:1},
{姓名:“迪帕克”,组别:1},{姓名:“吉加”,组别:3},
{姓名:“Mahesh”,组别:5},{姓名:“Mitesh”,组别:1},
{姓名:“Naresh”,组别:2},{姓名:“Mohini”,组别:2},
{姓名:“Nikunj”,小组:1},{姓名:“Mahi”,小组:1}];
vm.sortType=“组”;
vm.sortReverse=false;
Getdata();
函数GetData()
{
学生=学生;
}
}
当我进行排序时,不会对图像和我使用>指令绑定的其他文件进行排序
根据你的代码,我意识到你实际上并不需要这个指令。
你需要有一个过滤器,底部的样本基于上面写的代码
var-app=angular.module('app',[]);
应用程序控制器('StudentController',函数StudentController($scope)
{
var self=这个;
学生自我评价=[
{名称:“Bhadresh”,组:1},
{名称:“Mihir”,组:5},
{姓名:“莫希尼”,组别:1},
{名称:“Mukul”,组:1},
{姓名:“Dhaval”,组别:3},
{姓名:“迪伦”,组别:4},
{名称:“Sandeep”,组:4},
{名称:“Jignesh”,组:1},
{名称:“Deepak”,组:1},
{名称:“吉加”,集团:3},
{名称:“Mahesh”,小组:5},
{名称:“Mitesh”,组:1},
{名称:“Naresh”,组:2},
{姓名:“莫希尼”,组别:2},
{名称:“Nikunj”,组:1},
{名称:“Mahi”,组:1}
];
////默认排序
self.sortType=“组”;
self.sortReverse=false;
});
app.filter('myFilter',function(){
返回函数(组){
交换机(组){
案例1:
//你可以使用图像
返回“组1
您可以用图像替换”;
案例2:
//你可以使用图像
返回“组2
您可以用图像替换”;
案例3:
//你可以使用图像
返回“组3
您可以用图像替换”;
案例4:
//你可以使用图像
返回“组4
您可以用图像替换”;
案例5:
//你可以使用图像
返回“组5
您可以用图像替换”;
}
}
});
app.filter('to_trusted',['$sce',函数($sce){
返回函数(文本){
返回$sce.trustAsHtml(文本);
};
}]);代码>
团体
名称
{{student.Name}
问题不清楚,请详细说明(如果可能,请使用代码)你好,我的朋友,不要关注问题点,很多人都是先判断然后倾听。对于您的问题,您必须在您的ng repeat not桌面上使用过滤器。请尝试并评论我以帮助您。出于绑定目的,我想使用指令进行大数据绑定。我使用了该指令,但在得到数据排序后无法工作。
angular
.module('app')
..directive('dirGroup', [function () {
return {
restrict: 'A',
scope: {
dirGroup: '='
},
compile: function (element) {
element.removeAttr('dirGroup');
return function (scope, element, attrs) {
var objdata = scope.dirGroup;
var GroupID = objdata;
var strHtml_StatusImage = '<img src="../../assets/images/Group0.png?" >';
if (GroupID == 0) {
strHtml_StatusImage = '<img src="../../assets/images/Group0.png?" >';
}
else if (GroupID == 1) {
strHtml_StatusImage = '<img src="../../assets/images/Group1.png?" >';
}
else if (GroupID == 2) {
strHtml_StatusImage = '<img src="../../assets/images/Group2.png?" >';
}
else if (GroupID == 3) {
strHtml_StatusImage = '<img src="../../assets/images/Group3.png?" >';
}
else if (GroupID == 4) {
strHtml_StatusImage = '<img src="../../assets/images/Group4.png?" >';
}
else if (GroupID == 5) {
strHtml_StatusImage = '<img src="../../assets/images/Group5.png?" >';
}
else {
strHtml_StatusImage = '<img src="../../assets/images/Group0.png?" >';
}
var link = '' + strHtml_StatusImage + '';
element.append(link);
//}
}
}
}
}])
.controller('StudentController', ['$scope', StudentController] )
function StudentController()
{
var vm = $scope;
var students=[{Name : "Bhadresh", Group : 1}, {Name : "Mihir", Group : 5},
{Name : "Mohini", Group : 1}, {Name : "Mukul", Group : 1},
{Name : "Dhaval", Group : 3}, {Name : "Dhiren", Group : 4},
{Name : "Sandeep", Group : 4}, {Name : "Jignesh", Group : 1},
{Name : "Deepak", Group : 1}, {Name : "Jigar", Group : 3},
{Name : "Mahesh", Group : 5}, {Name : "Mitesh", Group : 1},
{Name : "Naresh", Group : 2}, {Name : "Mohini", Group : 2},
{Name : "Nikunj", Group : 1}, {Name : "Mahi", Group : 1}];
vm.sortType = "Group";
vm.sortReverse = false;
Getdata();
function GetData()
{
vm.students= students;
}
}