0

我正在使用 Angular2 和 javascript。目前在 TreeView 组件中有一个模板,看起来像这样:

<li>
  <label style="color:red">{{block.toString()}}</label>
  <select aria-label="block menu" (change)="blockMenuSelected(block,$event)">
    <option value="COPY_BLOCK" select>copy</option>
    <option value="CUT_BLOCK">cut</option>
    <option value="DELETE_BLOCK">delete</option>
  </select>
</li>
<li *ngIf= "block.nextConnection && block.nextConnection.targetBlock()">
  <tree-view [block]="block.nextConnection.targetBlock()"></tree-view>
</li>

请注意,它是一个递归组件。所以树视图组件内部有一个树视图组件。问题是,当我在块菜单下拉菜单中选择某些内容时,页面上的任何其他块菜单下拉菜单也会受到该选择事件的影响。我试过给每个<select>元素一个唯一的 id,但这并没有改变任何东西。我不确定这是 Angular2 错误还是我做错了什么。

4

1 回答 1

0

尝试

blockMenuSelected(block, event) {
   event.preventDefault();
   event.stopPropagation();
   ...
}

参考https://github.com/angular/angular/issues/2042

于 2016-02-05T08:00:50.933 回答