20

次のAngular UI-Bootstrap typeaheadがうまく機能しています:

<input class="span2" type="text" ng-model="selectedStuff" typeahead="stuff as stuff.name for stuff in stuffs | filter:$viewValue"/>

ただし、ほとんど機能しすぎています。stuffs.nameの目的でを表示し、でtypeahead完全なstuffオブジェクトを選択できますstuffs。問題は、 myがの代わりに$viewValueすべてのプロパティに一致することです。運が悪かったので、 のさまざまな場所に を追加しようとしました。のみを表示して一致させ、オブジェクト全体を返す簡単な方法はありますか?stuffstuff.name.nametypeahead.name

4

1 に答える 1

38

http://angular-ui.github.io/bootstrap/リポジトリの typeahead ディレクティブは、既存の AngularJS エコシステムにうまく適合するように構築されました。これは、このディレクティブが、AngularJS で既に使用されている構文、フィルター、およびディレクティブを可能な限り再利用しようとすることを意味します。

質問に戻ります - フィルタリング自体は、ここで説明されている Angular のフィルター フィルターによって行われます: http://docs.angularjs.org/api/ng.filter:filter言及されたフィルターの構文は、検索を選択したセットに制限するのに十分柔軟です。プロパティ:

typeahead="stuff as stuff.name for stuff in stuffs | filter:{name: $viewValue}"

注意してください:filter:{name: $viewValue}

ここで作業プランク: http://plnkr.co/edit/o1qWKq8LSmbbmVaYkOvb?p=preview

于 2013-04-16T20:17:15.983 に答える