2017-07-14 47 views
0

我有这个指令如何通过角度逻辑进行自定义订单?

app.directive('myEnter', ['searchSvc', function (searchSvc) { 
return{ 
    restrict: 'A',   
    link: function (scope, element, attrs) { 
     element.bind("keyup", function() { 
      searchSvc.getPlanets(this.value) 
      .then(function(response){ 
       scope.planets = response.data.results; 
       var filtered = []; 
       angular.forEach(scope.planets, function(item) { 
        filtered.push(item); 
       }); 
       scope.filtered = filtered; 
       console.log(filtered); 
       scope.min = '10px';  

      }).catch(function(error){ 
       $scope.error = response.data; 
      });   
     }); 

     } 
    } 

}]); 

在我有scope.planets:

scope.planets = { 
        "name":"Alderaan", 
        "population":"2000000000" 
       }, 
       { 
        "name":"Yavin IV", 
        "population":"1000" 
       } 

我想通过人口升序此范围内进行排序,不知我的orderby: 'population'不工作。任何人都可以帮助我的自定义功能?

在HTML文件中我有,

<tr ng-repeat="planet in filtered"> 
    <td><span>{{planet.name }}</span></td> 
    <td><span>{{planet.population}}</span></td> 
</tr> 
+1

人口是一个字符串。您需要将其转换为数字。 – Hoyen

回答

0

错字错误排序依据应该是 'B' 资本(ORDERBY)

<tr ng-repeat="planet in filtered | orderBy : 'population'"> 
    <td><span>{{planet.name }}</span></td> 
    <td><span>{{planet.population}}</span></td> 
</tr> 

如果你想扭转它使用:reverese在排序依据过滤

<tr ng-repeat="planet in filtered | orderBy : 'population' : 'reverse'"> 
     <td><span>{{planet.name }}</span></td> 
     <td><span>{{planet.population}}</span></td> 
    </tr> 
+0

没有typoerror不存在,我双重cheecked它,请你帮我定制功能 –