Javascript 在AngularJs中使用自定义过滤器

Javascript 在AngularJs中使用自定义过滤器,javascript,angularjs,Javascript,Angularjs,我对AngularJs比较陌生,在使用OrderBy时遇到了一个问题:关于排序对象,所以我借用了一个自定义过滤器来排序对象,但我不理解正确的语法是什么,因为它不会按照我想要的对象中的键进行排序: js: <tbody ng-repeat="(field, profile) in currentSample.dsProfile | orderByObject:'profile[display-name]' track by $index"> <tr ng-

我对AngularJs比较陌生,在使用OrderBy时遇到了一个问题:关于排序对象,所以我借用了一个自定义过滤器来排序对象,但我不理解正确的语法是什么,因为它不会按照我想要的对象中的键进行排序:

js:

<tbody ng-repeat="(field, profile) in currentSample.dsProfile | orderByObject:'profile[display-name]' track by $index">
            <tr ng-style="$index % 2 === 0 && {'background-color': '#ffffff'} ||
                          $index % 2 === 1 && {'background-color': '#f9f9f9'}">
                <td style="width: 19%; margin: 2px; padding: 0px;"
                    ng-style="profile['shown-in-details'] == true && {'background-color': 'gold'} ||
                              profile['shown-in-details'] == false && {'background-color': 'transparent'}">
                    <span class="btn-property"
                          ng-click="showInGenericDetails(currentSample, field)"
                          uib-tooltip="{{field}}"
                          tooltip-placement="right">
                        <b>{{profile["display-name"]}}</b>
                    </span>
不带过滤器

<table id="data-sources-table" class="table drag-drop">
                            <tbody ng-repeat="(field, profile) in currentSchema.sProfile | orderBy:PROPERTY track by $index">
                            <tr ng-style="$index %2 === 0 && {'background-color': '#ffffff'} ||
                                              $index %2 === 1 && {'background-color': '#f9f9f9'}">
                                <td style="width: 180px">
                                        <span class="btn-property">
                                            <b>{{field}}</b>

{{field}}
由于此
过滤器需要过滤集合,因此无法直接使用,因此您应该将项目解析为集合,如下所示:

var-app=angular.module('app',[]);
应用程序控制器('mainCtrl',函数($scope){
var testObj={
“obj1”:{
“id”:1,
“标题”:“标题1”
},
“obj2”:{
“id”:2,
“标题”:“标题2”
},
“obj3”:{
“id”:3,
“标题”:“标题3”
}
}; 
$scope.testArray=[];
Object.keys(testObj).forEach(函数(键){
$scope.testArray.push(testObj[key]);
});
//现在,您可以在视图中将$scope.testArray用作普通数组。
});

逆序
对于
字段
仅使用字段(属性)的名称,因此“[display name]”否…在任何属性名称中都没有
[]
。js:12520错误:[$injector:unpr]未知提供程序:orderByObjectFilterProvider“rderByObjectFilterCreate演示程序”复制此信息
<table id="data-sources-table" class="table drag-drop">
                            <tbody ng-repeat="(field, profile) in currentSchema.sProfile | orderBy:PROPERTY track by $index">
                            <tr ng-style="$index %2 === 0 && {'background-color': '#ffffff'} ||
                                              $index %2 === 1 && {'background-color': '#f9f9f9'}">
                                <td style="width: 180px">
                                        <span class="btn-property">
                                            <b>{{field}}</b>