0

サービスからプッシュされたデータをバインドするUiselectにデフォルトのオプション/選択肢(「クリックして何かをする」など)が必要です(ユーザーが何かを入力すると、ユーザー入力に基づいてサービスからデータがフェッチされます.

私の現在の UISelect 実装はこのようなものです

<ui-select id="agencySelect" class="form-control" ng-model="selectedAgencies.selectedAgency" theme="select2" on-select="onAgencySelected()" ng-disabled="disabled" required autofocus>
    <ui-select-match >{{$select.selected.Name}} ({{$select.selected.AgencyKey}})</ui-select-match>
    <ui-select-choices refresh="funcAsync('Agencies',$select.search)" refresh-delay="0" repeat="agency in agencies | filter:$select.search">
        <div>{{agency.Name}} ({{agency.AgencyKey}})</div>
    </ui-select-choices>
</ui-select>

「クリックして何かをする」などのデフォルトオプションを常にユーザーに追加したいのですが、これはデータソースのフィルタリングに関係なく、常にユーザーに表示されます。

このようなものはありますか?

     <ui-select id="agencySelect" class="form-control" ng-model="selectedAgencies.selectedAgency" theme="select2" on-select="onAgencySelected()" ng-disabled="disabled" required autofocus>
    <ui-select-match >{{$select.selected.Name}} ({{$select.selected.AgencyKey}})</ui-select-match>        
    <ui-select-choices null-label="Click to do something" refresh="funcAsync('Agencies',$select.search)" refresh-delay="0" repeat="agency in agencies | filter:$select.search">
        <div ng-trim="false">{{agency.Name}} ({{agency.AgencyKey}})</div>
    </ui-select-choices>
</ui-select>

今、私はこれをやっています

<ui-select-choices refresh="funcAsync('Agencies',$select.search)" refresh-delay="0" repeat="agency in agencies | filter:$select.search">
        <div >{{agency.Name}} ({{agency.AgencyKey}})</div>
    </ui-select-choices>
</ui-select>

やりたいことに

    <ui-select-choices null-label="Click to do something" refresh="funcAsync('Agencies',$select.search)" refresh-delay="0" repeat="agency in agencies | filter:$select.search">
        <div>{{agency.Name}} ({{agency.AgencyKey}})</div>
    </ui-select-choices>
</ui-select>

フィルタリングに関係なく、このデフォルト オプションをユーザーが常に使用できるようにします。

注:私ができる1つの方法は、この「クリックして何かをする」オプションを常に最初の項目としてデータソースに追加することですが、ユーザーがサーバーからデータをフィルタリングまたはフェッチしようとするたびにソースを台無しにしたくありません.

あなたの助けに感謝。

4

1 に答える 1

0

ui-select-match ディレクティブにプレースホルダー属性を追加するだけです。

<ui-select ng-model="address.selected"
         theme="bootstrap"
         ng-disabled="disabled"
         reset-search-input="false"
         style="width: 300px;">
<ui-select-match placeholder="Enter an address...">{{$select.selected.formatted_address}}</ui-select-match>
<ui-select-choices repeat="address in addresses track by $index"
         refresh="refreshAddresses($select.search)"
         refresh-delay="0">
  <div ng-bind-html="address.formatted_address | highlight: $select.search"></div>
</ui-select-choices>

実際、このコードは ui-select git repo のデモからのもので、それ 自体がplunkを参照してください

于 2015-03-23T16:34:41.407 に答える