我想一次只显示第一个div并隐藏所有其他div

时间:2016-06-13 09:23:29

标签: typescript angular

我想一次只显示第一个div并隐藏所有其他div。并在按钮单击需要显示第二个div并隐藏所有其他div。

组件模板:

@Component({
  selector: 'question',
  template: `<div class="slide-{{question.id}}" [ngClass]="{hide: isOn}" *ngFor="let question of questions">
             <div class="section-head  text-center">{{question.heading}}</div>
             <div class="section-desc  text-center">{question.description}}</div>
             </div>

<div class="action">
   <div class="col-md-12 text-center">
       <button type="button" class="btn prime prev-step ripple hide"><i class="material-icons pull-left">arrow_back</i> Prev </button>
       <button (click)="toggle(!isOn)" type="button" class="btn prime next-step ripple">Next <i class="material-icons pull-right">arrow_forward</i></button>
   </div>
</div>`
})

类别:

export class Question{
    id: number;
    heading: string;
    description: string;
    field: string;
    isOn = false;
    toggle(newState) {
        this.isOn = newState;
    }
}

2 个答案:

答案 0 :(得分:0)

不确定这是否是你想要的。

我为索引添加了i变量,然后在当前索引不等于变量hidden时将showIdx设置为true。在按钮上单击我增加showIdx变量:

@Component({
  selector: 'question',
  template: `<div class="slide-{{question.id}}" [ngClass]="{hide: isOn}" *ngFor="let question of questions let i=index" [hidden]="i !== showIdx">
             <div class="section-head  text-center">{{question.heading}}</div>
             <div class="section-desc  text-center">{question.description}}</div>
             </div>

<div class="action">
   <div class="col-md-12 text-center">
       <button type="button" (click)="showIdx++" class="btn prime prev-step ripple hide"><i class="material-icons pull-left">arrow_back</i> Prev </button>
       <button (click)="toggle(!isOn)" type="button" class="btn prime next-step ripple">Next <i class="material-icons pull-right">arrow_forward</i></button>
   </div>
</div>`
})
export class Question{
    showIdx = 0;

    id: number;
    heading: string;
    description: string;
    field: string;
    isOn = false;
    toggle(newState) {
        this.isOn = newState;
    }
}

答案 1 :(得分:0)

您需要为Private Sub Worksheet_Change(ByVal Target As Range) Dim strMininmumPrice As String 'test if change was made in price values If Not (Intersect(Target, Sheet3.Range("B2:B4")) Is Nothing) Then 'add neighbour cell value to message strMinimumPrice = "Minimum price was: " & CStr(Target.Offset(0, 1).Value) 'create and add comment to target cell Target.AddComment strMinimumPrice End If End Sub 而不是布尔值定义对象。这是一个示例:

isOn

并在模板中:

isOn: {}

toggle(question) {
  Object.keys(isOn).forEach(key => {
    if (key != question.id) {
      isOn[question.id] = false;
    }
  });
  isOn[question.id] = !isOn[question.id];
}