【问题标题】:How to display the array index value at console in angular 2如何在控制台上以角度 2 显示数组索引值
【发布时间】:2017-12-05 10:22:19
【问题描述】:

如何在单击轮播组件内的按钮时在控制台窗口中显示数组索引值?其中控制台窗口显示索引值两次,最后重定向到第一个数组索引值为 1。 控制台窗口应该只显示增量为 1 的索引值,因此它开始显示数组索引值。

guide.html

<tr *ngFor="let guide of guides">
  <td>{{guide.Type}}</td>
  <td>{{guide.PageColor}}</td>
  <td>
  	<carousel class="carousel slide" data-interval="false">
	    <slide  *ngFor="let image of images; let i=index ">
	      <p>Image: {{i+1}}</p>
	      <img src="{{image.image}}" alt="First slide"/>
	      <p (click)="idValue(i)">
	       	<input type="file" name="file" id="file" />
	       	<label for="file">{{image.change}}</label>
	      </p>
	     </slide>
  	</carousel>
	</td>
</tr>

guide.component.ts

import { Component } from '@angular/core';
import { CarouselModule } from 'ngx-bootstrap';
@Component({
  templateUrl: './guide.html'
})
export class GuideComponent {
	guides : any = [{ Type: 'Company', PageColor: 'red'},{ Type: 'Company', PageColor: 'Blue'}];

	images:any = [{image :'img1.jpg', change:'change'},{image: 'img2.jpg', change:'add'},{image:'img3.jpg', change:'edit'},{image:'im4.jpg',change:'delete' }];
        
	idValue(i) {
		i=i+1;
		console.log(i);
	}
}

【问题讨论】:

  • 你能改写一下这个问题吗?我想我可能会理解问题所在,但我不想在确定之前发布答案。谢谢
  • 控制台正在打印索引值,每次打印两次,第二次总是打印 1
  • 那么如何避免它在控制台中打印 1,如果索引值为 3 它显示 3 1st 并且与 3 一起显示 1
  • 可能是轮播$event被触发了两次尝试在html中:&lt;p (click)="$event, idValue(i)"&gt;在组件中:idValue(event, i) { i=i+1; console.log(event, i); }并检查输出。
  • 不,它不适用于活动,谢谢

标签: javascript angular typescript


【解决方案1】:

这是您的代码的简化版本,它可以工作。 用两个词 = 简单类型(数字是我们的例子)复制到点击处理程序参数,而不是通过 ref 发送。所以每次你从 i 获得相同的价值。

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
  <div  *ngFor="let image of images; let i=index ">
          <p>Image: {{i+1}}</p>

          <p (click)="idValue(i)">
          Button
          </p>
         </div>
  `,
})
export class AppComponent  { 

  images:any = [{image :'img1.jpg', change:'change'},{image: 'img2.jpg', change:'add'},{image:'img3.jpg', change:'edit'},{image:'im4.jpg',change:'delete' }];
  indexArr = new Array(this.images.length + 1);

    idValue(i) {
      if(!this.indexArr[i]) { this.indexArr[i] = 0};
        this.indexArr[i] += 1;
        console.log('index:', i, ' Click number', this.indexArr[i]);
    }

}

【讨论】:

  • 感谢您的尝试,但它没有在控制台中显示任何索引值
  • 更正显示索引和点击次数
猜你喜欢
  • 2019-08-15
  • 1970-01-01
  • 2018-06-28
  • 2018-03-20
  • 1970-01-01
  • 2021-02-21
  • 2017-08-29
  • 2017-01-19
  • 2013-03-02
相关资源
最近更新 更多