事件传播不适用于angular4

时间:2017-09-12 13:14:20

标签: angular event-propagation

我有这样的div结构:

<div [ngClass]="showDragDrop == true ? 'show' : 'fade' " 
                      (click)="hideWindow($event); $event.stopPropagation()">
     <input type="file" (change)="uploadFile($event)" .../>
</div>

基本上在hideWindow()方法中我设置了showDragDrop = false,这使我的div变得隐藏。

我的问题是,我有一个输入=&#39;文件&#39;这个div里面的按钮,当我点击它时会触发hideWindow()方法。

我试过这个

 hideWindow(event) {    
    event.stopPropagation();
    this.showDragDrop=false;
  }

这个

(event)="doSomething($event); $event.stopPropagation()"

和这个

(event)="doSomething($event); false"

但它不起作用

1 个答案:

答案 0 :(得分:2)

<input type="file" (click)="removetheClick($event)" ...> 移至输入点击()

removetheClick(event){
   event.stopPropagation();   
}

<input type="file" (click)="$event.stopPropagation()" ...>

Demo

或更简洁的版本,正如@yurzui所说:

public class ContactosService : IContactosService
{
    public string EmpresaId { get; set; }

    public void AddContact(Contact_mdl value)
    {
        using (var myCon = new AdoNetContext(new AppConfigConnectionFactory(EmpresaId)))
        {
            using (var rep = new Contact_rep(myCon))
            {
                rep.Add(value);
            }
        }
    }

    public void DeleteContact(int id)
    {
        using (var myCon = new AdoNetContext(new AppConfigConnectionFactory(EmpresaId)))
        {
            using (var rep = new Contact_rep(myCon))
            {
                rep.Delete(id);
            }
        }
    }
}