Arrays AngularJS中过滤器'orderBy'函数的抽象
因此,为了保持我们的代码尽可能干净,我假设要防止全局名称空间的污染,我必须将我的CTRL函数抽象到一个单独的文件中,但是我在抽象一个特定的函数时遇到了困难,该函数是根据从CSV数组接收到的控件div的颜色排序的,红色优先,琥珀色,等等 需要抽象的函数 HTML 因此,目前这在html的相关ctrl中工作得非常好,我只是不知道如何抽象这个函数,然后将其调用回ctrl 如果您能解释一下这个过程是如何工作的,我们将不胜感激 创建一个: 用法:Arrays AngularJS中过滤器'orderBy'函数的抽象,arrays,angularjs,angularjs-filter,Arrays,Angularjs,Angularjs Filter,因此,为了保持我们的代码尽可能干净,我假设要防止全局名称空间的污染,我必须将我的CTRL函数抽象到一个单独的文件中,但是我在抽象一个特定的函数时遇到了困难,该函数是根据从CSV数组接收到的控件div的颜色排序的,红色优先,琥珀色,等等 需要抽象的函数 HTML 因此,目前这在html的相关ctrl中工作得非常好,我只是不知道如何抽象这个函数,然后将其调用回ctrl 如果您能解释一下这个过程是如何工作的,我们将不胜感激 创建一个: 用法: {{x.name} {{x.phone}} {{x.co
{{x.name}
{{x.phone}}
{{x.color}}
创建一个自定义过滤器,这里有一些很好的信息,谢谢Ric。我会看一下,看看它是否有用。重点是,您可以在任何地方重用过滤器,并在必要时单独测试它。
$scope.colourOrder = function (x) {
switch (x.colour) {
case "Red":
return 1;
break;
case "Amber":
return 2;
break;
case "Green":
return 3;
break;
};
ng-repeat="x in data | orderBy : colourOrder"
app.filter("orderByColour",function() {
return function(xArray) {
return xArray.sort((a,b) => colourOrder(a)-colourOrder(b));
};
function colourOrder(x) {
switch (x.colour) {
case "Red":
return 1;
break;
case "Amber":
return 2;
break;
case "Green":
return 3;
break;
default:
return 0;
};
}
})
<table>
<tr ng-repeat="x in friends | orderByColour">
<td>{{x.name}}</td>
<td>{{x.phone}}</td>
<td>{{x.colour}}</td>
</tr>
</table>