Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs排序顺序未正常工作_Angularjs_Sorting_Angularjs Orderby - Fatal编程技术网

AngularJs排序顺序未正常工作

AngularJs排序顺序未正常工作,angularjs,sorting,angularjs-orderby,Angularjs,Sorting,Angularjs Orderby,请告诉我我的密码出了什么问题。单击表标题时,$scope.sort会获得正确的值,但不会按字母顺序对表进行排序 您可以使用JSON文件在此处查看plunkr: 查看此处以查看控制台日志 var-ssgaApp=angular.module('ssgaApp',[]); ssgaApp.controller('mainCtrl',['$scope','$http',函数($scope,$http){ var getEntries=$http.get('altLoginServlet.json')

请告诉我我的密码出了什么问题。单击表标题时,$scope.sort会获得正确的值,但不会按字母顺序对表进行排序

您可以使用JSON文件在此处查看plunkr:

查看此处以查看控制台日志

var-ssgaApp=angular.module('ssgaApp',[]);
ssgaApp.controller('mainCtrl',['$scope','$http',函数($scope,$http){
var getEntries=$http.get('altLoginServlet.json');
成功(函数(数据、状态、标题、配置){
$scope.ajaxerror=false;
$scope.companys=data.data;
});
错误(函数(数据、状态、标题、配置){
$scope.ajaxerror=true;
});
$scope.sort={列:“”,降序:true};
$scope.changeSort=函数(列){
//log($scope.sort);
$scope.sort.column=列;
$scope.sort.descending=!$scope.sort.descending;
log(“$scope.sort.column”、$scope.sort.column、$scope.sort.descending”、$scope.sort.descending);
$scope.currentPage=1;
$scope.currentPage_grid=1;
};
}])
.directive('changeSortdirective',['$timeout',function($timeout){
返回{
限制:“A”,
范围:{
changeSortAttr:“@changeSortdirective”
},
链接:函数(范围、元素、属性){
log('changeSortAttr',scope.changeSortAttr);
元素上('click',function()){
log('changeSort bind',scope.changeSortAttr);
scope.$parent.changeSort(scope.changeSortAttr);
});
}
};
}]);

因为使用DOM的
onclick
事件而不是
ngClick
指令,Angular不会检测用户的交互

您可能需要手动刷新
$scope

      element.on('click', function() {
        scope.$apply(function() {
          scope.$parent.changeSort(scope.changeSortAttr);
        });
      });

谢谢,这很有效。但是你能解释一下为什么我们需要使用$applyYou在angular js范围之外工作吗?onclick不是angular的一部分。因此,你在范围内所做的任何更改都不会反映在angular工作中$应用开始文件“”中提供的角度的摘要循环谢谢解释;)我现在才用
angular.element.bind('click',function(){
Very simple use 

  $scope.$apply(function() {
          $scope.sort=angular.copy($scope.sort);
           });

Plunker="http://plnkr.co/edit/f5lAp33c8VSwnVwDVLhA?p=preview"