当标签不活动时停止触发delect()
Stop firing deselect() when tab is not active
我的页面中有三个选项卡和 3 个按钮,我使用的是 ng2 bootstrap 选项卡。根据选项卡 selected 必须禁用/启用几个按钮。
<tabset>
<tab heading="tab1">tab1 content</tab>
<tab (select)="tab2ButtonsEnable()" (deselect)="tab1ButtonsEnable()">
<template tabHeading=" tab2"> tab2 content
</template>
<tab (select)="tab3ButtonsEnable()" (deselect)="tab1ButtonsEnable()">
<template tabHeading=" tab3"> tab3 content
</template>
</template>
</tab>
</tabset>
这里我的 tab1 是静态选项卡,当这个选项卡被 selected 时,所有 3 个按钮都必须被禁用。当标签2为select ED按钮1时必须启用。当标签 3 被 selected 时,按钮 3 必须被启用。我已经在方法中编写了这些逻辑。也就是说,当 tab2 被 selected 时, select() 被调用并启用 button1。这工作正常,直到我有两个选项卡。当我添加第三个选项卡时,第三个选项卡的 select() 被调用,然后是 tab2 的 deselect() 因为 tab2 不是 selected。这会通过调用 tab1ButtonsEnable() 禁用所有按钮。
是否可以将 select() 添加到静态选项卡??
或者如何限制 deselect () 触发,只需要调用最后一个活动选项卡的 deselect ??
从你的问题的措辞来看还不是很清楚,但如果你试图根据选择的选项卡 enable/disable 按钮,你可以根据以下内容做一些事情:
// Bind button disabled property to a boolean variable for whichever tab is showing
<button type='button' [disabled]='!showtab1'> Button 1 </button>
<button type='button' [disabled]='!showtab2'> Button 2 </button>
<button type='button' [disabled]='!showtab3'> Button 3 </button>
//Bind to the tab active property, and toggle the variable when select/deselect fire
<tab heading='tab1'
[active]="showtab1"
(select)="showtab1 = true"
(deselect)="showtab1 = false">
//tab content
</tab>
.. similar for tabs 2 and 3
除非我误解了,否则我不认为有必要停止任何事件的传播,在这里使用 3 个静态选项卡也没有什么特别之处。
我的页面中有三个选项卡和 3 个按钮,我使用的是 ng2 bootstrap 选项卡。根据选项卡 selected 必须禁用/启用几个按钮。
<tabset>
<tab heading="tab1">tab1 content</tab>
<tab (select)="tab2ButtonsEnable()" (deselect)="tab1ButtonsEnable()">
<template tabHeading=" tab2"> tab2 content
</template>
<tab (select)="tab3ButtonsEnable()" (deselect)="tab1ButtonsEnable()">
<template tabHeading=" tab3"> tab3 content
</template>
</template>
</tab>
</tabset>
这里我的 tab1 是静态选项卡,当这个选项卡被 selected 时,所有 3 个按钮都必须被禁用。当标签2为select ED按钮1时必须启用。当标签 3 被 selected 时,按钮 3 必须被启用。我已经在方法中编写了这些逻辑。也就是说,当 tab2 被 selected 时, select() 被调用并启用 button1。这工作正常,直到我有两个选项卡。当我添加第三个选项卡时,第三个选项卡的 select() 被调用,然后是 tab2 的 deselect() 因为 tab2 不是 selected。这会通过调用 tab1ButtonsEnable() 禁用所有按钮。
是否可以将 select() 添加到静态选项卡??
或者如何限制 deselect () 触发,只需要调用最后一个活动选项卡的 deselect ??
从你的问题的措辞来看还不是很清楚,但如果你试图根据选择的选项卡 enable/disable 按钮,你可以根据以下内容做一些事情:
// Bind button disabled property to a boolean variable for whichever tab is showing
<button type='button' [disabled]='!showtab1'> Button 1 </button>
<button type='button' [disabled]='!showtab2'> Button 2 </button>
<button type='button' [disabled]='!showtab3'> Button 3 </button>
//Bind to the tab active property, and toggle the variable when select/deselect fire
<tab heading='tab1'
[active]="showtab1"
(select)="showtab1 = true"
(deselect)="showtab1 = false">
//tab content
</tab>
.. similar for tabs 2 and 3
除非我误解了,否则我不认为有必要停止任何事件的传播,在这里使用 3 个静态选项卡也没有什么特别之处。