Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度(2/4):选择文本触发单击事件_Angular - Fatal编程技术网

Angular 角度(2/4):选择文本触发单击事件

Angular 角度(2/4):选择文本触发单击事件,angular,Angular,如果元素具有(单击)处理程序,并且您在该元素中选择了一些文本,则会调用(单击)处理程序。有没有办法防止这种情况?说明问题。相关代码: @Component({ selector: 'my-app', template: ` <div> <h2 (click)="handleClick()">Click or select this text</h2> </div> ` }) export class App

如果元素具有
(单击)
处理程序,并且您在该元素中选择了一些文本,则会调用
(单击)
处理程序。有没有办法防止这种情况?说明问题。相关代码:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2 (click)="handleClick()">Click or select this text</h2>
    </div>
  `
})
export class App {
  public handleClick() {
    alert('you clicked');
  }
}
@组件({
选择器:“我的应用程序”,
模板:`
单击或选择此文本
`
})
导出类应用程序{
公共handleClick(){
警报(“您单击了”);
}
}

使用此代码

public handleClick() {
  var selection = window.getSelection();
  if(selection.toString().length === 0) {
      alert('you clicked');
  }

}
将单击事件(
$event
)传递给
handleClick
方法

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2 (click)="handleClick($event)">Click or select this text</h2>
    </div>
  `
})
或:


Plunker demo:

这件事现在发生在我身上。但真正的问题是为什么:-(
export class App {
  public handleClick(event) {
    if (event.view.getSelection().type !== 'Range') {
      alert('you clicked');
    }
  }
}
export class App {
  public handleClick(event) {
    if (event.view.getSelection().toString().length === 0) {
      alert('you clicked');
    }
  }
}