我有这个应用程序,使用ng repeat显示产品。客户希望特定产品在订单中始终排在第一位,例如:
从产品列表中,客户希望标题为“SUPER MAC”的产品始终位于顶部或显示为产品列表中的第一项。
提前致谢。
此致 莱恩
答案 0 :(得分:0)
只需创建两个数组,然后首先遍历热门项目,然后遍历其余项目。
$scope.topItems = ['Super Mac'];
$scope.items = ['foo', 'bar'];
答案 1 :(得分:0)
这是你可以做的:
您可以使用sort
的{{1}}功能按标题实现排序:
Array
您可以在此处详细了解:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
重要:以上示例仅是您最需要定义最符合您需求的排序的指导。
然后,您可以在自定义过滤器中实现此功能:
var arr = [ {title: 'Food', age: 50}, {tile: 'Supermarket', age: 50}, {title: 'zebra', age: 50}, ];
arr.sort(function(a,b){ return (a.title === "zebra" || b.title === "zebra") ? 1 : 0; } );
这可以在您的HTML中使用,如:
var myApp = angular.module('myApp',[]);
myApp.filter('myFilter', function() {
return function(items,param1) {
items.sort(function(a,b){ return (a.title === param1 || b.title === param1) ? 1 : 0; } );
});
}
});
通过利用角度过滤器,您可以从我的POV更好地满足MVVM模式的视图顶部传递您想要的项目,因为它可以避免向控制器或服务添加额外的代码在特定的观点中感觉或是必要的。