【问题标题】:Loading spinner inside angularjs ui-select在angularjs ui-select中加载微调器
【发布时间】:2018-06-19 21:26:51
【问题描述】:

我正在使用 AngularJs 和 ui-select,我想在从服务器检索数据期间使用微调器。 如何在 html 代码中放置微调器? 这是实际的 HTML 代码

<div class="col-md-4 form-group">
    <ui-select theme="bootstrap" multiple
        ng-click="populateFilterFleet()"
        on-select="selectFleet($item, $model)"
        on-remove="deSelectFleet($item, $model)" id="fleet"
        name="fleet" data-ng-model="model.idFleetName"
        data-ng-cloak> <ui-select-match
        placeholder="Select Fleet"> <span
        data-ng-style="$item.color && {'color': '{{$item.color}}' }"><i
        class="fa fa-circle"></i></span> {{$item.fleetName}} </ui-select-match> <ui-select-choices
        repeat="singleFleet in fleets | filter: $select.search">                                
    <div class="row"
        style="border-bottom: 1px dashed lightgrey;">

        <div class="col-md-6">                                              
            <b>{{singleFleet.fleetName}}</b>&nbsp;
        </div>
        <div class="col-md-4"></div>
        <div class="col-md-2" data-toggle="tooltip"
            data-placement="left" title="Navigate to fleet">
            <a ng-click="navigateToFleet(singleFleet.idFleetName)"
                class="pull-right"><i
                style="margin-right: 5px; color: black;"
                class="fa fa-external-link"></i></a>
        </div>
    </div>
    </ui-select-choices> <ui-select-no-choice>No Fleet</ui-select-no-choice> </ui-select>
</div>

我想在 select 中添加一个微调器:

<i data-ng-show="true" class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>
<span class="sr-only">Loading...</span></div> 

通过 ng-show 中的变量,我可以管理从服务器检索的数据。

【问题讨论】:

  • “我想在 select 中添加一个微调器”,是指在下拉菜单中(单击选择框时出现)还是只是在选择框上?
  • 我认为在 select 里面更好
  • 您可以为此使用自定义 css,将加载器图标放在选择框的顶部

标签: javascript html angularjs ui-select


【解决方案1】:

您可以通过使用 css 来做到这一点,尽管这不是最优雅的方式。使用css位置属性将加载图标放在选择框的顶部,并使用ng-show根据您的要求使其可见\隐藏。比如:

<div class="col-md-4 form-group">

<i data-ng-show="true" class="fa fa-spinner fa-pulse fa-3x fa-fw" style="position: relative; top: 16px; left: 5px; z-index: 100"></i>
<!-- You can correct the top, left values as per your requirement and put this in some class to make your code neat-->
<span class="sr-only">Loading...</span></div> 

<ui-select theme="bootstrap" multiple
    ng-click="populateFilterFleet()"
    on-select="selectFleet($item, $model)"
    on-remove="deSelectFleet($item, $model)" id="fleet"
    name="fleet" data-ng-model="model.idFleetName"
    data-ng-cloak> <ui-select-match
    placeholder="Select Fleet"> <span
    data-ng-style="$item.color && {'color': '{{$item.color}}' }"><i
    class="fa fa-circle"></i></span> {{$item.fleetName}} </ui-select-match> <ui-select-choices
    repeat="singleFleet in fleets | filter: $select.search">                                
<div class="row"
    style="border-bottom: 1px dashed lightgrey;">

    <div class="col-md-6">                                              
        <b>{{singleFleet.fleetName}}</b>&nbsp;
    </div>
    <div class="col-md-4"></div>
    <div class="col-md-2" data-toggle="tooltip"
        data-placement="left" title="Navigate to fleet">
        <a ng-click="navigateToFleet(singleFleet.idFleetName)"
            class="pull-right"><i
            style="margin-right: 5px; color: black;"
            class="fa fa-external-link"></i></a>
    </div>
</div>
</ui-select-choices> <ui-select-no-choice>No Fleet</ui-select-no-choice> </ui-select>
</div>

【讨论】:

  • 以这种方式我应该将微调器放在顶部,如果选择显示元素在顶部而不是按钮上它不起作用。它应该在选择内
  • 使用 z-index,微调器将沿着 z 轴(在屏幕平面之外)浮动在您选择的顶部(前提是您已调整 top:left:值)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 2013-07-24
  • 2014-10-22
  • 1970-01-01
相关资源
最近更新 更多