2014-10-08 32 views
0

我不完全確定這是一個旋轉木馬中的錯誤,但看起來確實如此。UI-Bootstrap 0.6.0 Carousel在幻燈片圖像動態更改時無法工作

我使用旋轉木馬來顯示船隻圖片。當我點擊一個按鈕時,會執行一個函數來獲取船名圖片列表,並從數據庫中檢索圖片列表。第一次,一切都很完美。我可以看到顯示圖片的旋轉木馬。但是,如果再次單擊此按鈕,該功能將再次運行,並且幻燈片圖像會動態更改。這一次,旋轉木馬消失了。只是爲了檢查功能是否正常工作,圖片是否存在,我使用Chrome工具來檢查代碼。我可以確認帶有照片的幻燈片在那裏。但是,兩個生成的代碼之間存在一些差異。請找到兩次轉盤代碼。第一個是核心工作的時候。第二個是代碼不工作時(當我點擊按鈕並第二次運行該功能)。

這裏是輪盤源代碼:

<div id="boatCarousel" class="carousel slide" ng-show="boatSelected.mainPhoto"> 
       <carousel interval="30000"> 
        <slide ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//{{S3_BUCKET}}.{{PHOTO_SERVER_URL}}/img/boats/{{boatSelected.id}}/{{boatPhoto.id}}.{{boatPhoto.mime}}" style="margin:auto;"> 
        </slide> 
       </carousel> 
      </div> 

我比較兩個代碼,並一見鍾情,我可以當它在那裏工作的第一張圖片,這是在第二缺少主動類看碼。

代碼工作方式(第一次運行):

<div id="boatCarousel" class="carousel slide" ng-show="boatSelected.mainPhoto"> 
       <div class="carousel" interval="30000"> 
    <ol class="carousel-indicators" ng-show="slides().length > 1"> 
     <a href=""><!-- ngRepeat: slide in slides() --><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope active"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li></a> 
    </ol> 
    <div class="carousel-inner" ng-transclude=""> 
        <!-- ngRepeat: boatPhoto in boatPhotos --><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope active" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/1.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/2.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/3.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/4.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/5.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/6.jpg" style="margin:auto;" class="ng-scope"> 
        </div> 
       </div> 
    <a ng-click="prev()" class="carousel-control left" ng-show="slides().length > 1" href="">‹</a> 
    <a ng-click="next()" class="carousel-control right" ng-show="slides().length > 1" href="">›</a> 
</div> 
      </div> 

CODE不工作(第二輪):

<div id="boatCarousel" class="carousel slide" ng-show="boatSelected.mainPhoto"> 
       <div class="carousel" interval="30000"> 
    <ol class="carousel-indicators" ng-show="slides().length > 1"> 
     <a href=""><!-- ngRepeat: slide in slides() --><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li><li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)" class="ng-scope"></li></a> 
    </ol> 
    <div class="carousel-inner" ng-transclude=""> 
        <!-- ngRepeat: boatPhoto in boatPhotos --><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/1.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/2.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/3.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/4.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/5.jpg" style="margin:auto;" class="ng-scope"> 
        </div><div ng-class="{ 
    'active': leaving || (active &amp;&amp; !entering), 
    'prev': (next || active) &amp;&amp; direction=='prev', 
    'next': (next || active) &amp;&amp; direction=='next', 
    'right': direction=='prev', 
    'left': direction=='next' 
    }" class="item ng-scope" ng-transclude="" ng-repeat="boatPhoto in boatPhotos"> 
         <img src="//yanpy.dev.s3.amazonaws.com/img/boats/1/6.jpg" style="margin:auto;" class="ng-scope"> 
        </div> 
       </div> 
    <a ng-click="prev()" class="carousel-control left" ng-show="slides().length > 1" href="">‹</a> 
    <a ng-click="next()" class="carousel-control right" ng-show="slides().length > 1" href="">›</a> 
</div> 

      </div> 

我缺少的東西,或者是一個用戶界面,引導錯誤?

我也創建了一個試圖重現該問題,但我無法。無論如何,檢查代碼會很有幫助。 http://plnkr.co/edit/OzZmlCNT7M5MeT5EANy5?p=preview

UPDATE 

我剛纔注意到這個帖子Angular UI Boostrap Carousel setting active slide after making new slides。我認爲我的問題與此相關或相同。這篇文章中的插頁行爲與我的應用程序相同,但在我的應用程序中,當點擊下一個或上一個箭頭時,圖片不會顯示。

回答