5

次のような動的データモデルが websocket 経由で入ってきます。

var results = [
    [
        {name:'A'},
        {price: 0.00}
    ],
    [
        {name:'C'},
        {price: 0.00}
    ],
]

次のように ng-repeat を使用しています。

ng-repeat="result in results"

結果配列内の配列の 1 つにアクセスする必要があるときはいつでも、次のようにします。

result[0].name

私が抱えている問題は、ngRepeat の orderBy フィルターでは、これを実行できないように見えることです。

ng-repeat="result in results | orderBy: result[0].name

Angular がどのように機能するかについての基本的な誤解かもしれませんが、なぜこれが機能しないのか理解できません。構文が間違っていますか、それともデータ モデルが動的であることが原因ですか? $scope.$apply をどこかに設定する必要がありますか?

引用符で試してみましたが、最初にデータを解析する関数に述語を設定し、結果として結果の各インスタンスに述語を設定しようとしましたが、これも機能しません。

どんな助けでも大歓迎です。

4

1 に答える 1

10

この質問は本当に興味深いです。orderBy は現在のオブジェクトを使用するため、順序文字列を相対的に割り当てる必要があります。

これはトリックを行います:

ng-repeat="result in results | orderBy: 'this[0].name'
于 2015-01-21T21:10:28.573 に答える