私はプロジェクトでAngularJSを使用しています。ネストされたプロパティのフィルタを持つ選択ボックスを実装する必要があります。私のオブジェクト(私はそれらと私はNGリピートを経由して、それらを反復てるの配列を持っている)これと同様の構造を有する:指定されたプロパティを持たないAngularJSネストされたフィルタ隠蔽要素
{
id: 1,
name: 'Example',
groups: [
{ id: 1, name: 'Group 1' },
{ id: 2, name: 'Group 2' }
]
}
を私は要素のグループIDをフィルタリングする必要がある、と私を検索した後これらの問題がある
1.
| filter: { $: { id: search.item_id } }
:
どうやらそれはIDという名前のネストされたプロパティを検索し、私ヘクタール場合は、「それを行うには、2つの方法を考え出すまし私の主なオブジェクトの中に複数のオブジェクトがあり、IDというプロパティもあります。それはフィルタにそれを追加します。例:
{
id: 2,
name: 'Example 2',
groups: [
{ id: 1, name: 'Group 1' },
{ id: 2, name: 'Group 2' }
],
categories: [
{ id: 1, name: 'Cat 1' },
{ id: 2, name: 'Cat 2' }
]
}
ID 1のフィルタリングはID 1のグループだけでなく、ID 1のカテゴリも選択します。
また、フィルタを設定する前(search.item_idモデルがnull)でも、グループのないオブジェクトはフィルタリングされていて、リストには表示されません。これらのオブジェクトは、このようなものです:
{
id: 3,
name: 'Example 3',
groups: []
}
および他の方法がある。この場合、
2.
| filter: { groups: [{ id: search.item_id }] }
、問題は、それが単に動作しないということです、それはすべてのものをフィルタリングそれが設定されているかどうか、またはどのオプションが選択されていても、リストは空白のままです。
どうすればいいですか?私は検索してきましたが、これについて何も見つかりませんでした。ネストされたプロパティをフィルタリングすることは、非常に基本的なことです。
更新:
ので、XTX最初のソリューションは、ちょっと私は入力テキストまたは番号を使用しますが、私は、選択ボックスを使用する必要がある場合にのみ、それをしなかった(具体的にUIB-ドロップダウンしかし、通常の選択で作業することは次のステップです)。私の選択ボックスは次のようになります:
<select name="filter_classes_groups_test" ng-model="search.group_id">
<option val="group.id" ng-repeat="group in classesGroups">{{ group.name }}</option>
</select>
私はそれと対話しても何も起こりません。
驚くべきことに、最初の人はそれを行い、それは2番目の人よりもはっきりしているようです。 しかし、私はそれがテキストや数字のような入力を使用して動作するように管理してきました、私の目的は、グループの名前が表示されている選択ドロップダウンを使用することですが、しかし、選択ボックスを使用してフィルターをかけると何も起こりません。 –
私の質問にその詳細を追加しました –
ドロップダウンからオプションを選択するとフィルターが適用されない理由の説明を追加しました – xtx