1

mysqlには30のカテゴリがあります。別の表の30のカテゴリに関連する450のサブカテゴリがあります。

カテゴリテーブル
ID_タイトル_キーワード
1_動物_動物、動物、ペット、オウム
2 _本_本、本、教育
n _ xxx _ xxx

サブカテゴリテーブルID_ref _title_
キーワード
1_1 _ cats _ cats、persian cat、bengal cat
2 _ 1 _ dogs _ dogs、labrador、
golder retriver 3 _ 2 _ Classic _ davinci code、books、book、classic Books

フィルタをテキストフィールドに実装する必要があります。ユーザーがテキストフィールドにlabradorと入力した場合は、キーワードに「labrador」を含むカテゴリまたはサブカテゴリを表示します。この場合、「犬」サブカテゴリが表示されます。

私はこれがjqueryを使用して行われたことを知っています。しかし、angularJsでこれを実装する方法はありますか?あなたがjsfiddleを手に入れたら、それは素晴らしいでしょう!:) ありがとうございました

4

2 に答える 2

2

このフィドルはあなたが始めるのを助けるかもしれません。テキストボックスに「ラブラドール」と入力してみてください。2番目のドロップダウンには犬のみが表示されます。「ペルシア語」と入力すると、2番目のドロップダウンには猫のみが表示されます。

ほとんどの作業は、次のサブカテゴリ選択フィルターで行われていng-optionsます。

<select ng-model="selectedSubCategory" ng-options="c.title for c in subcategories | filter:{ref: selectedCategory.id, keywords:keyword}"></select>

フィルタフィルターを使用すると、バインドされた配列を複数のフィールドで制限できます。この例では、次の2つの方法でフィルタリングしています。

  1. 最初の選択ドロップダウンrefsubcategories基づくに基づいています。selectedCategoryこれ自体は、現在選択されているカテゴリに一致するサブカテゴリのみを表示します。
  2. 入力テキストボックスに入力された内容にkeywords基づいsubcategoriesています。keywordこれは、テキストボックスに何かを入力すると、モデルで値が更新され、入力されたテキストを含むものが$scope.keyword自動的にフィルタリングさsubcategoriesれることを意味します。keywords

更新: bfrickaの見解を見た後、私はあなたの質問を誤解したかもしれません。私はフィドルを微調整allCategoriesし、モデルの組み合わせに追加しcategories、結果を:subcategoriesに表示する際に入力したキーワードに対してのみフィルターを追加しました。ng-repeat

<div ng-repeat="c in allCategories | filter:{keywords:keyword}">{{c}}</div>
于 2012-09-09T02:33:06.123 に答える
0

私は別の道を選んだのです。これは、いくつかのアンダースコアフィルターを使用してモデルを変更するだけです。ちょっとラフですが、始めるのに良い場所かもしれません。

http://jsfiddle.net/bfricka/J3kDS/

于 2012-09-09T03:34:27.280 に答える