gpt4 book ai didi

html - 如何使用 angularjs 将选项卡标题与正文分开?

转载 作者:太空狗 更新时间:2023-10-29 14:23:35 26 4
gpt4 key购买 nike

在 angularjs 元素中,我使用 uib-tabset 指令来显示选项卡。我想显示所有选项卡通用的左侧面板。所以我必须在 uib-tabset 指令之前或之后添加一个 div。

默认情况下,标题部分直接位于标签正文的顶部。 enter image description here

在生成的结构中,我想将面板包含在选项卡中(视觉上): same side panel for all tabs

使用uib-tabsets,生成的结构是这样的:

<panel>
<tabs-headings>
<tabs-bodies>

对于这种结构,我发现的唯一方法是编辑 css 并使用位置属性(左/上),以便将标题移动到侧面板的顶部,但我发现这有风险。另一种方法是在每个选项卡中复制面板代码,但我发现这也很糟糕。

相反,我想生成这个,这样创建 css 会更容易:

<tabs-heading>
<panel>
<tabs-bodies>

有没有一种简单的方法可以实现这种行为?

谢谢

最佳答案

编辑:哈哈。刚看到我迟到了 10 个月。

我刚刚遇到你在说什么。如果您使用 ng-repeat 在每个选项卡中动态呈现内容,这将避免多次重新制作侧面板。

  <div class="tabWrapper">
<uib-tabset>
<uib-tab index="$index + 1" ng-repeat="tab in tabs" heading="{{tab.title}}" disable="tab.disabled">

<div class="sidePanel">{{tab.sidepanel}}</div>
<div class="tabContent">{{tab.content}}</div>

</uib-tab>
</uib-tabset>
</div>

你也不需要搞乱绝对定位:

.sidePanel {
float: left;
width: 20%;
height: 10em;
border: 1px solid black;
border-top: none;
}

或者,如果您正在使用 angular-ui-router,您可以使用抽象状态来完成静态侧面板。

config.js

  $stateProvider
.state('root.tabs', {
abstract: true,
controller: 'TabsCtrl as vm',
templateUrl: 'templates/app-layout/tabs.tpl.html'
})
.state('root.tabs.view', {
url: '/tabsview',
templateUrl: 'templates/app-layout/sidepanel.tpl.html'
});

tabs.tpl.html

   <div>
<uib-tabset>
<uib-tab index="$index + 1" ng-repeat="tab in tabs" heading="{{tab.title}}" disable="tab.disabled">

<div class="sidePanelContainer" ui-view></div>

<div class="tabContent">{{tab.content}}</div>
</uib-tab>
</uib-tabset>
</div>

sidepanel.tpl.html

<div class="sidePanel">
<input type="text" value="1234">
<input type="text" value="4321">
</div>

另见: what is the purpose of use abstract state?

希望对你有帮助

关于html - 如何使用 angularjs 将选项卡标题与正文分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33216109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com