css - 无法在 Angular 2 中正确显示 Bootstrap Carousel

标签 css angular twitter-bootstrap typescript twitter-bootstrap-3

在这里,我使用的是 Bootstrap 3.3.7 和 Angular 4。我的问题是我试图在 Bootstrap Carousel 中显示图片数量,而在每张幻灯片中我试图显示 3 张图片。到现在为止,我正在从数组中获取数据,在最后一张图片结束后。然后,第一张照片必须立即跟进,但现在我将所有图像放在一个页面中。下面是我的代码:

.html代码:

<div class="container">
  <h2>Carousel Example</h2>  
  <div id="myCarousel" class="carousel slide" data-ride="carousel"  >
      <div class="col-sm-4" *ngFor="let data of  DataOne;let i = index" >
    <!-- Indicators -->
    <ol class="carousel-indicators">
      <li data-target="#myCarousel"  [attr.data-slide-to]="i" class="active"></li>
    </ol>

    <!-- Wrapper for slides -->
    <div class="carousel-inner">
      <div class="item active">
        <img src="{{data.ImageUrl}}" alt="Los Angeles" style="width:50%;">
      </div>
    </div>
  </div>

    <!-- Left and right controls -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
      <span class="sr-only">Next</span>
    </a>
  </div>
</div> 

.ts代码:

 export class TestComponent implements OnInit {

  DataOne:any=[
    {    
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    { 
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    {  
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    {   
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    {    
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    {   
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
     },
     {
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    },
    {    
      "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
    }
  ];
  constructor() { }
  ngOnInit() {
  }
}

以下是我得到的解决方案:

enter image description here

最佳答案

在 bootstrap carousel 中,每个 .item 都是实际的 slider 。因此,如果您想要一个包含 3 个图像的 slider ,您必须放置 .col-sm-4 并在 .item 中循环树次。您可能需要更新图像对象。

参见:https://angular-52pqo7.stackblitz.io

编辑:https://stackblitz.com/edit/angular-52pqo7

数据JSON:

DataOne:any=[{
        "sliderImages": [{
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            },
            {
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            },
            {
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            }
        ]
    },
    {
        "sliderImages": [{
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            },
            {
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            },
            {
                "ImageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSW6QPbLZN-2Xs4Jb6DMZKivwTQtw5L3QH5AjJf4fPM8pubZato2Q"
            }
        ]
    }
]

轮播:

<div class="container">
  <h2>Carousel Example</h2>  
  <div id="myCarousel" class="carousel slide" data-ride="carousel"  >
      <!-- Wrapper for slides -->
      <div class="carousel-inner">
        <div class="item" 
          *ngFor="let data of  DataOne; first as isFirst;"
          [class.active]="(isFirst)"
        >
          <div class="col-sm-4" *ngFor="let slidImg of  data.sliderImages">
            <img src="{{slidImg.ImageUrl}}" alt="Los Angeles" style="width:50%;">
          </div><!-- .col-sm-4 -->
        </div><!-- .item -->
      </div><!-- .carousel-inner -->

      <!-- Indicators -->
      <ol class="carousel-indicators">
        <li 
          *ngFor="let data of  DataOne; index as i; first as isFirst;" 
          data-target="#myCarousel"  
          [attr.data-slide-to]="(i)"
          [class.active]="(isFirst)"></li>
      </ol>

    <!-- Left and right controls -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
      <span class="sr-only">Next</span>
    </a>
  </div><!-- #myCarousel -->
</div><!-- .container -->

关于css - 无法在 Angular 2 中正确显示 Bootstrap Carousel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51276880/

相关文章:

jquery - 我们如何从现有图像中绘制 3D 建筑结构 Jquery,Css?

angular - 处理 Tab 事件

Angular 4 : How to create reusable module of base classes

Angular:从 FormControl 获取所有验证器的列表

jquery - Twitter bootstrap响应 block 高度

css - 在小屏幕上呈现时立方体的笨拙形状

css - 不和谐的彩色文本

javascript - 带有 setLine() 的 Ace 编辑器?

jquery - Bootstrap Scrollspy 突出显示所选元素上方的导航元素

css - Twitter bootstrap 3 如何在小型设备上激活 navbar-collapse