0

複数のフィールド検索を許可するシステムを作成していて、これをドロップダウン (Redmine と同様) で実行したい場合、どのように実装できますか? 特定の部分で、フィールド「foo」を選択し、「別のフィールドを追加」というボタンをクリックすると、「foo」を再度選択できなくなりますか?

initial fields: {"foo","bar","baz"}  
select fields.foo  
add another field
remaining fields = {"bar","baz"}

明確化が必要な場合はお知らせください。

ここでドロップダウンの例を見つけました。

明確化

「foo」を整数にする「bar」を日付にする「baz」を文字列にする

ユーザーがフィールド「バー」を追加すると、カレンダー ピッカー ウィジェットが提供されます。ユーザーが「foo」を選択した場合、数値が有効な整数であることを確認します。
ユーザーが「baz」を選択すると、それが有効な文字列であることを確認します。

したがって、各選択はフィールドの選択に基づいて特定の動作を示すため、ユーザーは [別のフィールドを追加] ボタンを使用して各フィールドを個別に選択する必要があります。

4

1 に答える 1

3

私はこれを何度も繰り返してきました。ここに私自身のコードからのスニペットがあります。このコードは、商業請負業者が会社の「所属」を選択できるようにするために使用されました。

私のHTMLビューでは:

<select class="input-full" ng-model="currAff" ng-options="aff for aff in availableAffs | filter:notAlreadyAdded"></select>

filter:notAlreadyAdded上記の部分に注意してください。

私のコントローラーで:

$scope.notAlreadyAdded = function(aff){
    // search through all the affiliations that were previously added
    // if the given "aff" is in the previously-added list, return false
    // else, return true
};

select で ng-optionsのフィルターを使用するfilter:notAlreadyAddedと、オプションの配列内の各項目がループされ、その項目が指定された関数に渡されます。次に、そのアイテムを使用して必要なテストを実行し、将来的にそのアイテムを可能なオプションのリストに含める必要があるかどうかを角度に伝えるブール値を返すだけです。

それがあなたの質問に答えることを願っています。

于 2013-10-15T14:30:19.697 に答える