2

orderBy関数は完全に無視されています。テスト用にある時点でconsole.logを追加しましたが、関数が呼び出されていません。データは引き続き表示されますが、順序付けはされていません。

HTMLコード

<div id="tabs">
    <a ng-repeat="tab in tabs | orderBy:tabordinal" id="tab-{{tab.tab_id}}" class="{{getClasses(tab)}}" ng-click="tabclick(tab)">{{tab.label}}</a>
</div>

JS関数

$scope.tabordinal = function (tab) {
    return $scope.taborder.indexOf(tab.tab_id);
};

他のすべては正しく設定されています(つまり、ng-clickが正しく機能し、データが適切にバインドされ、フィルターが他の要素で機能しています。

4

1 に答える 1

4

いくつかのこと...

  1. orderBy文字列、または文字列を返す式を取ります。その文字列は、注文するオブジェクトのリストで注文するプロパティの名前にする必要があります。したがって、配列内のオブジェクトに のようなプロパティがあれば、問題[ { 0: 'foo', 1: 'bar', '2': 'blah' } ]ないと思います。しかし、私はそれらがそのように構成されているとは思えません。
  2. orderBy:tabOrdinal()あなたの式が関数の場合、元の投稿にあるように、それが必要です()

それ以外では、フィドルを提供していただければ、さらにサポートを提供できます。

于 2012-12-05T17:34:49.240 に答える