Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bootstrap\Modal #6259

Closed
lynicidn opened this issue Nov 26, 2014 · 2 comments
Closed

bootstrap\Modal #6259

lynicidn opened this issue Nov 26, 2014 · 2 comments

Comments

@lynicidn
Copy link
Contributor

Need add to doc.
If u use modal widget with remote load, u should set clientOptions as false.

http://www.yiiframework.com/forum/index.php/topic/39227-boostrap-modal-remote-url/
crisu83/yiistrap#116

были такие баги в уии первой версии, они же и остались во второй
и всякого рода быдлокод попадает в вики и прочие источники информации, к примеру тут:
http://www.yiiframework.com/wiki/690/render-a-form-in-a-modal-popup-using-ajax/
советуют:

$('#modalButton').click(function (){
    $('#modal').modal('show')
        .find('#modalContent')
        .load($(this).attr('value'));
});

Здесь тоже не ищут легких путей http://www.yiiframework.com/forum/index.php/topic/51854-yii2-and-ajax/

Суть проблемы, что в режиме ремоут не надо объявлять контейнеру, что он dialog, за это отвечает registerPlugin функция. Вроде в коде предусмотрели https://github.com/yiisoft/yii2/blob/master/extensions/bootstrap/Modal.php#L230 такую проверку, но по дефолту clientOptions = [], так что тут надо либо в ручную устанавливать фальш, либо сделать проверку, на то как вызывается виджет, если не через begin и end, то устанавливать опции в нулл, т.к. контента нет, а значит это тогле с аяксом, зачем объявлять модалку. Ну или же простой путь, просто описать это в доке

@lynicidn
Copy link
Contributor Author

\yii\bootstrap\Modal::widget([
    'id' => 'login-modal',
    ],
    'toggleButton' => [
        'label' => ' Войти',
        'tag' => 'a',
        'data-target' => '#login-modal',
        'class' => 'glyphicon glyphicon-log-in',
        'href' => \yii\helpers\Url::to(['/account/login']),
    ],
])

этот код не будет работать, причем ошибок не будет как в жс, так и в пхп, просто не будет услышано событие ajax load, многие добавляют типа такого события

    'clientEvents' => [
        'show.bs.modal' => new \yii\web\JsExpression("function(){
            var target = $(this)->data('target');
            $('.modal-content', $(target)).load($(this)->attr('href'));
        }"),

но это не совсем правильно, хоть и работает, достаточно просто отключать клиентские опции добавив:

    'clientOptions' => false,

@samdark samdark closed this as completed Nov 26, 2014
@samdark
Copy link
Member

samdark commented Nov 26, 2014

It's wiki article issue. Please contact article authors or use comments there. Github issues are about framework itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants