0

AngularJS では、以下のグループごとに「完了/すべて」のタスクを示すカウンターを表示したいと思います。つまり、この場合は次のようになります。

food:       1/2
hygienics:  0/1

タスクのリスト:

$tasks = [
    {
        title:  "buy bacon",
        group: "food",
        done:   "true",
    },
    {
        title:  "buy tuna",
        group: "food",
        done:   "false",
    },
    {
        title:  "buy toothpaste",
        group:  "hygienics",
        done:   "false",
    },
];

タスクの「完了」を「true」に設定すると、カウンターが自動的に更新されます。だから本当に、私は次のような素敵なフィルタリングされた式を探しています(ただし、「完了」が機能しています):

Food: {{ ( tasks | filter: {group:'food'} ).length }}

これに「完了」を含めるにはどうすればよいですか?

4

1 に答える 1

2

ドキュメントから:

次の構文を使用してフィルターをチェーンできます。

{{ expression | filter1 | filter2 }}

したがって、追加のフィルターをチェーンするだけです。

tasks | filter: {group:'food'} | filter: {done: true}

または、まだドキュメントから

式 – {文字列|オブジェクト|関数()} –</p>

配列から項目を選択するために使用される述語。

次のいずれかになります。

[...]

オブジェクト: パターン オブジェクトを使用して、配列に含まれるオブジェクトの特定のプロパティをフィルター処理できます。たとえば、{name:"M", phone:"1"} 述語は、"M" を含むプロパティ name と "1" を含むプロパティ phone を持つアイテムの配列を返します。

だからあなたも使うことができます

tasks | filter: {group:'food', done: true}

ただし、テストされていません。

于 2013-07-13T20:56:45.490 に答える