2013-04-16 10 views
20

に私は次のAngularUI-Bootstraptypeaheadは素晴らしい作業を持っている:リミット角度UI-のBootstrap先行入力、特定のオブジェクトのプロパティ

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

けれども、それはほとんどすぎるを働いています。私はtypeaheadの目的のためにstuffs.nameを表示でき、stuffオブジェクトはstuffsにすべて選択できます。問題は、$viewValuestuff.nameの代わりにstuffのすべてのプロパティと一致していることです。私は.nameを運のないtypeaheadのさまざまな場所に追加しようとしました。 .nameだけを表示して一致させる簡単な方法はありますか?それでもオブジェクト全体を返しますか?

答えて

38

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

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

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

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

ワーキングここplunk:http://plnkr.co/edit/o1qWKq8LSmbbmVaYkOvb?p=preview

+0

はどうもありがとうございました!私はRTFMにしようとしていることを誓っていますが、私はそれを保つつもりです。 – Jesse

+0

私は 'filter:{name:$ viewValue}'の違いを見ません。 'filter:$ viewValue'に変更しようとしましたが、出力は同じでした。 –

+0

@SaadFarooq構文t 'filter:$ viewValue'を変更すると、角度は基本的にオブジェクトからJSON文字列を作成して検索します。構文pkozlowskiは、名前フィールドのみを検索します。上記のPlnkrで "second"という単語を使用してテストします。名前フィールドにはどこにも表示されません。提案したとおりに編集すると、2番目の結果が「2番目」に表示されます。 – jklemmack

関連する問題