【问题标题】:Md tabs with ng-hide - keep the previously selected tab active带有 ng-hide 的 Md 选项卡 - 保持先前选择的选项卡处于活动状态
【发布时间】:2016-05-24 20:00:40
【问题描述】:

我正在使用一组选项卡,其中有要隐藏和动态显示的选项卡。

问题是当一个标签从隐藏变为可见时,它就变成了被选中的标签。我希望在显示选项卡后仍选择先前选择的选项卡。

这是一个简单的例子。在这种情况下,如果选择了“三”,并且我点击了显示“二”选项卡的按钮,我希望仍然选择“三”。

https://jsfiddle.net/b5aw533a/2/

这是我如何尝试使用md-active 来实现此目的的示例

https://jsfiddle.net/pspL9c7s/1/

【问题讨论】:

    标签: angularjs tabs angular-material


    【解决方案1】:

    你的问题是$scope.selectedTab等于2,也就是选中标签的索引。

    当您添加新标签时,您应该相应地更新$scope.selectedTab

    基本上,如果您在所选选项卡之前添加一个选项卡,您应该使用$scope.selectedTab++ 增加所选选项卡的索引。如果新标签出现在之后,那么您不必这样做。

    $scope.showTab = function() {
      // we add a tab before, so we update the index of the selected one
      $scope.selectedTab++;
      $scope.shouldShow = true;
    }
    

    https://jsfiddle.net/v8jL75tf/

    【讨论】:

    • 这仍然提出了一个问题:为什么md-autoselect="false" 不做任何事情?如果这算作添加一个新选项卡,则应该能够添加该指令并期望它起作用,但显然它没有。
    • 我不认为autoselect 参与其中:您有一个索引,该指令假定为带有md-selected 的选定选项卡。如果更改数组,则索引不会引用数组的相同项。
    • 对,但在这种情况下,autoselect 永远不会涉及。我的意思是.. 总是有一个选定的索引。 autoselect 应该完全按照 @Dallin 对 imo 的要求去做,或者应该更新文档。 (我不是在这里吹毛求疵,我只是有点困惑。)
    • @floribon 当您选择第一个选项卡时会发生什么?然后使用您的解决方案选择第二个选项卡。 jsfiddle.net/cz85smd8/1
    • @Dallin 这就是为什么我说这取决于您是否在所选选项之前或之后添加选项卡...如果您在之后添加它,则不要增加。您应该知道添加标签的位置。
    猜你喜欢
    • 2018-10-24
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2017-09-22
    • 2020-01-19
    • 2020-04-24
    • 1970-01-01
    相关资源
    最近更新 更多