0

ng-switch を使用して、レイアウトにフィルタリング入力フィールドを作成しています。ルート名をオンにして、このフィールドを使用して各ページの ng-repeat のデータをフィルタリングします。

div(ng-controller="NavbarCtrl", ng-switch on="route.current.name")
                input.filter(ng-switch-when='offers',type="text", ng-model="$parent.$parent.search.title")
                input.filter(ng-switch-when='merchants',type="text", ng-model="$parent.$parent.search.name")

このアプローチの問題は、あるページで入力した値が、他のルートに移動したときに保存されたままになり、他のページでもデータをフィルター処理することです。組み込みの角度検索フィルターを使用しているため、モデル名が付けられています。

ルート変更時にフィルターの値をどうにかしてリセットできますか?

もう 1 つの問題は、この $parent.$parent スコープへのアクセスが実用的ではないことですが、より洗練された方法を見つけることができませんでした。

どんなヒントでも大歓迎です!

4

1 に答える 1

0

searchコメントで説明したように、Angular の特別なフィルターではなく、Angular のフィルターフィルターで使用されるプロパティの名前にすぎないプロパティに関する混乱がありました。

また、$parent親スコープ オブジェクトのプロパティが使用/参照されている場合は必要ありません。つまり$scope.search = { ... }、 が親スコープで定義されている場合、子スコープ (ディレクティブの分離スコープではない) は、通常の JavaScript プロトタイプ継承を介してこのオブジェクトにアクセスできます。

于 2013-03-19T15:14:40.957 に答える