2

入力には複数選択の機能が必要です。問題は、ユーザーがタップしている間にサーバーからデータが動的に取得されることです。適切なデータが見つからない場合は、新しいラベルを作成する必要があります。コードの例:アドレスの取得

現在の例では、ラベル内に情報を表示せずtagging-label="(custom 'new' label)"、新しい情報が入力された場合にタイトルを表示しません (たとえば、「blablablabla」のようなものを入力すると、サーバーは何も返さないはずです)

どのように扱うことができますか?すべての結果を配列に保存し、サーバーの代わりに配列を操作できる回避策はうまくいきません...

4

1 に答える 1

7

複数を使用する場合は、ui-select-match で $item を使用する必要があります

カスタム関数を使用して新しいアイテムを作成する必要があります (「blablabla」など)。これは、ui-select のタグ付け属性で行います。

必要なコードは次のようなものです。

<ui-select multiple tagging="tagTransform" ng-model="myCompetences.competences" theme="bootstrap" ng-disabled="disabled" style="width: 800px;" title="Choose a person">
<ui-select-match placeholder="Select a address...">{{$item.formatted_address}}</ui-select-match>
<ui-select-choices repeat="address in addresses track by $index"  refresh="refreshAddresses($select.search)" refresh-delay="0">
<div ng-if="address.isTag" ng-bind-html="'<small>(new)</small>'"></div>
  <small>
    {{address.formatted_address}} 
  </small>
</ui-select-choices>
</ui-select>

ここにあなたの例の変更があります: http://plnkr.co/edit/CQkuSMQub9S81hSRueO1

ここに有用な例を含むplnkrがあります: http://plnkr.co/edit/m1SQXUxftBLQtitng1f0

サーバーなどに情報を追加する場合は、on-select イベントを使用することをお勧めします。

于 2015-03-03T16:29:06.460 に答える