2014-02-17 46 views
0

我有一個NG重複樣在列表中首先出現。看起來getter選項或orderBy只適用於數組。任何人都有他們如何實現這一目標的例子?始終顯示的鍵先用角

+0

您的要求太具體。在視圖的'ng-repeat'控件中使用它之前,您首先要對對象進行排序(在控制器中) – callmekatootie

回答

1

基本上你有一個無序的對象,並且你希望它有某種順序。

爲此,您需要創建一個返回某個有序對象的函數。

myApp.filter('promote_foo', function() { 
    return function(object, comp) { 
     console.log(object); 
     console.log(comp); 
     var ordered = []; 
     for (var key in object) { 
      var obj = { 
       key: key, 
       value: object[key] 
      }; 
      if (key === comp) 
       ordered.splice(0,0,obj); 
      else 
       ordered.push(obj); 

     } 
     console.log(ordered); 
     return ordered; 
    }; 
}); 

該函數需要一個參數,如果密鑰匹配它,它將會提升並返回對象。現在我只能直接在控制器中調用它,但可以像使用角度濾波器一樣使用它。

$scope.order = $filter('promote_foo')($scope.data, 'foo'); 

此外,你可以玩小提琴here

希望這有助於!