Как установить и снять флажок, используя метод изменения - PullRequest
0 голосов
/ 22 октября 2018

Я хочу инициировать событие, только если флажок установлен, и тогда оно будет удалено, когда флажок снят.Как мне это сделать? В настоящее время я использую (изменить), чтобы вызвать событие, но это будет срабатывать, если я установлю или сниму флажок.

 public send(line : any){
    this.broadCastService.sendLine(line);
  }
<div *ngFor="let line of test  ">
  <label>
    {{line.lineNumber}}
    <input type="checkbox" ng-model="line" (change)="send(line)">
  </label>

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Вы можете сделать это следующим образом

Ts

export class Line {
  lineNumber:string;
  isActive:boolean;
}

public send(event, index : number) {
    // If value is true will execute the event
    if(test[index].isActive) {  
        this.broadCastService.sendLine(test[index]);
    }
}

// Assume we have the list as "test"
let test = new Array<Line>();

Предположим, что в 'test' есть несколько данных

HTML

<div *ngFor="let line of test;let i = index">
  <label>
    {{line.lineNumber}}
    <input type="checkbox" [(ngModel)]="line.isActive" (change)="send($event,i)">
  </label>
</div>
0 голосов
/ 22 октября 2018

Этот тип сценария или условия должен находиться в файле ts.В вашем коде есть несколько проблем, таких как ng-model вместо ngModel.Похоже, у вас есть AngularJS фон.В любом случае, здесь есть исправление

html

<div *ngFor="let line of test  ">
  <label>
    {{line.lineNumber}}
    <input type="checkbox" (change)="send($event)">
  </label>

ts

 public send(checked: any){
    if(checked){  //send if the value is true
        this.broadCastService.sendLine(line);
    }
  }

Примечание: флажок будет содержать только true или false.Вам может понадобиться получить line откуда-то еще.

...