我已经创建了bootstrap.widgets.TbTabs,如何在客户端动态添加新选项卡。是否存在任何可以添加新标签的事件,就像下面代码中的“显示”事件一样。
<?php $this->widget('bootstrap.widgets.TbTabs', array(
'id' => 'mytabs',
'type' => 'tabs',
'tabs' => array(
array('id' => 'tab1', 'label' => 'Tab 1', 'content' => $this->renderPartial('tab1', null, true), 'active' => true),
array('id' => 'tab2', 'label' => 'Tab 2', 'content' => 'loading ....'),
array('id' => 'tab3', 'label' => 'Tab 3', 'content' => 'loading ....'),
),
'events'=>array('shown'=>'js:loadContent')
));?>
答案 0 :(得分:1)
没有,但这并不意味着你不能自己创造它。
只需通过控制器传递“标签”部分,如下所示:
控制器中的:
$tabs => array(
array('id' => 'tab1', 'label' => 'Tab 1', 'content' => $this->renderPartial('tab1', null, true), 'active' => true),
array('id' => 'tab2', 'label' => 'Tab 2', 'content' => 'loading ....'),
array('id' => 'tab3', 'label' => 'Tab 3', 'content' => 'loading ....'),
);
$this->render('pageName', array('tabs' => $tabs));
在视图:
中<?php $this->widget('bootstrap.widgets.TbTabs', array(
'id' => 'mytabs',
'type' => 'tabs',
'tabs' => $tabs,
'events'=>array('shown'=>'js:loadContent')
));?>
如果要在主布局中实现类似的功能,可以创建一个从CActiveRecord扩展的模型,并将选项卡存储在数据库中。之后,您可以在模型类中使用静态方法来调用和检索选项卡。然后在布局视图中,您可以执行以下操作:
<?php $this->widget('bootstrap.widgets.TbTabs', array(
'id' => 'mytabs',
'type' => 'tabs',
'tabs' => Model::getTabs(),
'events'=>array('shown'=>'js:loadContent')
));?>
答案 1 :(得分:1)
在标题中添加新标签链接,添加新标签,显示新标签
$('#tabHeaders').append($('<li><a href="#newtab">New Tab</a></li>'));
$('#tabContent').append($('<div class="tab-pane" id="newtab"></div>'));
$('#newtab').tab('show');
注意YiiBooster自动生成元素id,需要使用适当的jquery选择器
答案 2 :(得分:1)
我认为将控制器中包含的视图渲染为一个很好的做法。
我认为这在我看来对我有用:
$this->widget('bootstrap.widgets.TbTabs', array(
'type'=>'tabs',
'tabs'=>array(
array( //
'label'=>'Comments ('.$model->commentCount.')',
'content'=>$this->renderPartial( '_comments', array( 'model'=>$model ), true ),
),
)
));
显然,要实现这一点,你需要“_comments.php”存在......