我有一个重复的重复:
<div ng-repeat="(k, v) in query_p[$index].tags">
我希望如果键(k)是某个字符串,比如说“foo”,那么该字符串总是首先出现在列表中。似乎getter选项或orderBy
仅适用于数组。任何人都有一个如何实现这一目标的例子吗?
答案 0 :(得分: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。
希望这有帮助!