Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays AngularJS中过滤器'orderBy'函数的抽象_Arrays_Angularjs_Angularjs Filter - Fatal编程技术网

Arrays AngularJS中过滤器'orderBy'函数的抽象

Arrays AngularJS中过滤器'orderBy'函数的抽象,arrays,angularjs,angularjs-filter,Arrays,Angularjs,Angularjs Filter,因此,为了保持我们的代码尽可能干净,我假设要防止全局名称空间的污染,我必须将我的CTRL函数抽象到一个单独的文件中,但是我在抽象一个特定的函数时遇到了困难,该函数是根据从CSV数组接收到的控件div的颜色排序的,红色优先,琥珀色,等等 需要抽象的函数 HTML 因此,目前这在html的相关ctrl中工作得非常好,我只是不知道如何抽象这个函数,然后将其调用回ctrl 如果您能解释一下这个过程是如何工作的,我们将不胜感激 创建一个: 用法: {{x.name} {{x.phone}} {{x.co

因此,为了保持我们的代码尽可能干净,我假设要防止全局名称空间的污染,我必须将我的CTRL函数抽象到一个单独的文件中,但是我在抽象一个特定的函数时遇到了困难,该函数是根据从CSV数组接收到的控件div的颜色排序的,红色优先,琥珀色,等等

需要抽象的函数 HTML 因此,目前这在html的相关ctrl中工作得非常好,我只是不知道如何抽象这个函数,然后将其调用回ctrl

如果您能解释一下这个过程是如何工作的,我们将不胜感激

创建一个:

用法:

{{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>