1

TbModal ウィジェットにリモート URL (別のコントローラー/ビューの組み合わせ) をロードさせることができないようです。

これは、モーダルを作成しているビューです:

<?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>'myModal')); ?>

<div class="modal-header">
    <a class="close" data-dismiss="modal">&times;</a>
    <h4>Client Ticket Log</h4>
</div>

<div class="modal-body">

</div>

<div class="modal-footer">
    <?php $this->widget('bootstrap.widgets.TbButton', array(
        'type'=>'primary',
        'label'=>'Save changes',
        'url'=>'#',
        'htmlOptions'=>array('data-dismiss'=>'modal'),
    )); ?>
    <?php $this->widget('bootstrap.widgets.TbButton', array(
        'label'=>'Close',
        'url'=>'#',
        'htmlOptions'=>array('data-dismiss'=>'modal'),
    )); ?>
</div>

<?php $this->endWidget(); ?>

<?php $this->widget('bootstrap.widgets.TbButton', array(
    'label'=>'Click me',
    'type'=>'primary',
    'url'=> array('clientticketlog/create', 'ticket_id'=>$model->id),
    'htmlOptions'=>array(
        'data-toggle'=>'modal',
        'data-target'=>'#myModal',
    ),
)); ?>

ドキュメントからわかるように、モーダルを呼び出すリンクに href 属性が指定されている場合、jQuery はそのアドレスのコンテンツをモーダル本体にロードします。

しかしそうではなく、体は空のままです。ロードしようとしている URL を別のタブで開いて確認したところ、正常にロードされました。

足りないものはありますか?

4

1 に答える 1

0

@Manquer is right. href doesn't populate the modal. His suggestion works if the content of the modal doesn't change. If you want to reuse the same modal for a different view, however, you need to use javascript e.g:

$("a[data-toggle=modal]").click(function(){
    var target = $(this).attr('data-target');
    var url = $(this).attr('href');
    if(url){
        $(target).find(".modal-body").load(url);
    }
});
于 2013-11-10T19:39:32.487 に答える