我有一个标签小部件,如下所示。
<?php
echo \yii\bootstrap\Tabs::widget([
'items' => [
[
'label' => 'Administrators',
'url' => Url::to(['/admin/admin']),
],
[
'label' => 'Members Tracker',
'url' => Url::to(['/admin/members']),
],
[
'label' => 'Pages',
'url' => Url::to(['/admin/pages']),
],
],
]);
?>
标签正确显示。但是活动不适用于其他选项卡。只有活动才会显示在第一个标签如果我们点击其他标签(“会员跟踪器”,“页面”),它会正确路由并可以查看页面内容。但是tab1('Administrators')处于打开状态,其他标签处于关闭状态。如何在我们点击它和其他人关闭时激活标签。请帮助我。
在Yii2 Bootstrap Tabs Widget你可以使用active
选项。
例如,在AdminController
中将$action
设置为当前操作并传递给视图文件:
<?= \yii\bootstrap\Tabs::widget([
'items' => [
[
'label' => 'Administrators',
'url' => Url::to(['/admin/admin']),
'active' => $action == 'admin',
],
[
'label' => 'Members Tracker',
'url' => Url::to(['/admin/members']),
'active' => $action == 'members',
],
[
'label' => 'Pages',
'url' => Url::to(['/admin/pages']),
'active' => $action == 'pages',
],
],
]); ?>
我的理解是,当您单击页面重定向的任何选项卡时,您不希望在单击任何选项卡时重新加载或重定向页面。如果这是正确的,那么这是因为您正在使用url
选项并且它采用完整路线并重定向到该URL,要使用基本选项卡功能,您必须使用content
选项显示所需选项卡的文本,或者您可以加载视图也见下文
<?php
echo \yii\bootstrap\Tabs::widget([
'items' => [
[
'label' => 'Administrators',
//using a view file
'content' => $this->render('some-view'),
],
[
'label' => 'Members Tracker',
//using static content
'content' => 'This is some content for Member Tracker Tab'
],
[
'label' => 'Pages',
'content' => 'This is some content for Pages Tab'
],
],
])
?>