我正在使用Angular2與JavaScript。目前在TreeView組件中有一個如下所示的模板:Angular2多個下拉受同一變化影響
<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>
請注意,它是一個遞歸組件。所以treeview組件中有一個treeview組件。問題是,當我在塊菜單下拉菜單中選擇某些內容時,頁面上的任何其他塊菜單下拉菜單也受該選擇事件的影響。我試過給每個<select>
元素一個唯一的ID,但這並沒有改變任何東西。我不確定這是否是Angular2錯誤,或者我做錯了什麼。
這聽起來像它可能是事件冒泡。在'blockMenuSelected()'嘗試在事件中調用'stopPropagation()'。 –
嗯。它聽起來像冒泡,但event.stopPropagation()不會導致不同的輸出。 –