在ng-repeat angular spin.js中为多个项目加载微调器

时间:2014-06-10 18:41:09

标签: javascript jquery angularjs angularjs-ng-repeat spin.js

此处的Plunker:http://plnkr.co/edit/das1We3T9hY39x8R?p=preview

我的ng-repeat中有一个项目列表。

单击/选中其中一个项目时,它们会从左列中删除并添加到右列。当它们被放置在右栏中时,旋转器应显示。

我无法让它工作,因为它在我在plunker中的本地构建中工作,但我的具体问题是,当点击列表中的第一个项目时,微调器才会启动。

在plunker中它的行为类似,如果你先点击第二个项目然后再点击第二个项目,则微调器会显示。但是,每次将它移动到右列时,我需要一个微调器来显示每个项目。

它必须与userState有关 - {{$ index}}和' userState - ' + user.id

<li class="pull-right">
   <div dw-loading="userState-{{$index}}" 
        dw-loading-options="{overlay: true, text: '', 
           spinnerOptions: {length: 6, width:3, radius: 6}}">
       <a href="" ng-click="remove(sUser)">
          <i class="glyphicons remove inline"></i></a>
    </div>
 </li>




$scope.loadUsers = function(user) {
       $loading.start('userState-'+suspect.id);
   $timeout( function() {
           $loading.finish('userState-'+user.id);
       }, 3000)

     };

谢谢!

1 个答案:

答案 0 :(得分:0)

我看了一下这个问题,还看了你用来加载的指令。从我的快速概述来看,看起来这个指令用于ng-repeat而不是每个已重复的元素。

我在这里更新了你的插件:http://plnkr.co/edit/MDqfWxssNftGlwmC5WZE?p=preview

我将加载指令移到ng-repeat之外,如下所示:

<div dw-loading="sSuspectLoading" dw-loading-options="{overlay: true, text: '', spinnerOptions: {length: 6, width:3, radius: 6}}" class="">
    <div ng-repeat="sSuspect in selectedSuspects" class="top-buffer">
        <!-- Repeated content here -->
    </div>
</div>

然后我只是修改了加载开始/结束来调用它:

$loading.start('sSuspectLoading');
$timeout( function() {
    $loading.finish('sSuspectLoading');
}, 3000);

如果你想在每个单独的项目上加载加载器而不是整个ng-repeat,我认为你使用这个指令的方式错误,因为它看起来不像& #39;专为此而设计(来自我的快速观察)。