問題タブ [angularjs-orderby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
368 参照

angularjs - orderBy フィルターを使用する ng-repeat の更新されたスコープで ng-if を適切に使用する方法

最も古いメッセージを一番上に、最新のメッセージを一番下に表示するチャット メッセージ表示があります。アレイでを使用してng-repeatおり$scope.messages、新しいチャット メッセージがそのアレイに動的に追加されます。にはng-repeatorderByメッセージを作成日でソートするのに役立つフィルター コンポーネントがあります。

ng-ifメッセージが同じ日に同じユーザーによって送信されたときに、HTML の特定の側面 (ユーザーのアバター、名前、msg-timestamp など) を非表示にするために使用しようとしています。ただし、新しいメッセージが配列に追加されると、私のロジックは台無しになります。$scope.messages

HTML の短縮版:

該当するチャット コントローラーは次のとおりです。

このコードは一見しただけで機能します。最初は、orderByフィルターのため、最後のインデックスの$scope.messagesメッセージが実際には最初のメッセージであり、インデックス0のメッセージが最後に追加されたメッセージです。

しかし、新しいメッセージが追加されるたびに、Angular はスコープを動的に更新し、orderByフィルターが適用されるまでの一瞬の間、その新しいメッセージは の最後のインデックスに置かれます$scope.messagesこれにより、メソッドの背後にあるロジックが失わng-ifれ、同じユーザーからのすべての新しいメッセージが、非表示にしたい HTML 要素と共に表示されます (つまり、メソッドでtrueng-ifが返されます)。

私の詳細によるとconsole.logging、 の HTML をコンパイルする時点で、インデックス0ng-ifのメッセージは最後に送信されたメッセージの 2 番目 (最新ではない) のままであり、最新の最新のメッセージは実際には のアイテムです。配列の最後のインデックス。これにより、最初のステートメントが有効になり、同じ日に同じユーザーによって送信されたすべての新しいメッセージに対して HTML 要素が表示されます (ページを更新しない限り、すべてが適切に表示されます)。if

誰でも考えられる回避策はありますか?

0 投票する
1 に答える
897 参照

angularjs - 整数文字列を使用したAngularjs orderBy

Exのデータセットがあります:

このデータを のソースとして使用しますng-repeat

friendsを順番scoreに並べ替えたいと思いますdescending。以下のように、

しかし、私は出力を次のように取得します

ここにデモプランカーがあります

出力では -21 と -35 の順序が正しくないことに注意してくださいscore。これは、プロパティがString値であるためです。それをint値に変更すると、すべてが期待どおりに機能します。scoreこれを克服する方法と、プロパティのタイプを変更できないことを考慮してください。

0 投票する
3 に答える
5735 参照

javascript - AngularJS カスタムフィルター orderBy sortPredicate が機能しない

問題は、レシピ オブジェクトの配列があることです。各レシピ オブジェクトには、いくつかのコメントがあります。angular が提供する $filter サービスを使用して、angularJS コントローラーで配列をソートしたいと考えています。

しかし、必要な結果が得られません。ただし、このような JS 配列の並べ替え機能を使用して、目的の結果を得ることができます

同じシナリオの Plunkr は次のとおりです: http://plnkr.co/edit/L9Bt67xHRCJLBoWG8EZp?p=preview

前もって感謝します。助けてください!

0 投票する
2 に答える
286 参照

javascript - 解析 + Angular orderBy 発行

Angular のテーブルに ng-repeat があります。データは Parse から取得されます。

orderBy 'id' または 'createdAt' を使用すると、並べ替えが正しく機能します。total、tax、または paymentType で注文するにはどうすればよいですか?

0 投票する
1 に答える
73 参照

angularjs - AngularJs の ng-repeat で OrderBy の適用を選択的に制限する方法はありますか?

私のアプリケーションでは、値がテキストボックスにバインドされている配列を繰り返し処理しています(基本的に入力タイプ = "数値")。つまり、

いう、

この Plnkr リンク - http://plnkr.co/edit/?p=preview&s=D7hhm2al6sOXMHwQ

私が話していることを示しています。

したがって、テキストボックスの値を変更するとすぐに並べ替えられます。編集したばかりのボックスを検索しなければならないユーザーに不快感を与えるため、これが発生することは望ましくありません。Doms が初めて作成されたときに ng-repeat が注文されるが、それらが再作成されるまで再度注文されないソリューションが必要です。どうすればこれを達成できますか?助けてください。

0 投票する
3 に答える
1351 参照

angularjs - ng-repeat の Angularjs orderBy が期待どおりに機能しない

テンプレートに次の div があります。


console.log(JSON.stringify($scope.billing_history))私に次を与えます:


何はともあれ、以下のように表示されます。

私は試してみましorderBy:'-timestamp'orderBy:'+timestamp'

なぜこれが機能しないのか、私には本当にわかりません。誰かが間違っている可能性があることを見ていますか?

0 投票する
1 に答える
478 参照

angularjs - 動的 orderBy は AngularJS のビューで ng-repeat を中断します

コントローラーのサービスを介して取得しているデータを動的に順序付けする際に問題が発生しています。最初の検索を行うと、データは問題なくロードされますが、orderBy を更新しようとするとすぐに、ビュー内のすべてのデータが並べ替えられずに消えてしまいます。ビューに表示しているデータは、$scope.filtered_events に保存されたデータです。また、コントローラーはルーターを介してテンプレートに接続されています。

検索コントローラー

テンプレート

郵便番号サービス

編集 - のデータ構造を追加$scope.filtered_events:

0 投票する
2 に答える
885 参照

angularjs - AngularJS orderBy子プロパティが機能しない

アイテムのリストを子プロパティで並べ替えるにはどうすればよい"active" : trueですか? 最初のノードは、すべてのフレンドに対して動的に挿入される ID です。

0 投票する
3 に答える
121 参照

html - orderBy が HTML div で機能しない

div に ng-repeat 機能を実装しようとしています。そのためには、最初にデータを並べ替え (オブジェクトから提供されたランクに従って)、次に div に名前を付ける必要があります。だから私はカスタム OrderBy 関数を作成しています。私のソート機能はうまく機能します。ただし、divの順序は常に同じです。(実際、必要なものとは正反対です)。リバース機能を使用してみましたが、うまくいきません。

私のソートコードは次のようになります。

私のHTML divは次のようになります。

コンソールに正しい出力が表示されます。ただし、何をしても、divは常に以下の順序で配置されます。

日産、クライスラー、ヒュンダイ、トヨタ、フォード。

フォード、トヨタ、ヒュンダイ、クライスラー、日産の順に必要です。

注: 「データ内の名前」の部分は気にしないでください。問題なく動作します。「OrderBy」に問題があります。