Имеется GridView, также для каждой модели из GridView имеется кнопка для вызова модального окна, внутри которого DetailView от Kartik-v обернутый в Pjax.
Первое модальное окно отрабатывает нормально, последующие вызывают перезагрузку страницы. WTF?
Pjax::begin(['enablePushState' => false, 'id' => 'model-contacts']);
echo GridView::widget([
'dataProvider' => new ActiveDataProvider([
'query' => $model->getContacts(),
]),
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'type',
'title',
'data',
'lat_long',
'comment',
['class' => 'yii\grid\ActionColumn'],
],
]);
Pjax::end();
foreach ($model->contacts as $index => $contact) {
Modal::begin([
'header' => '<h4 class="modal-title">Detail View Demo</h4>',
'toggleButton' => ['label' => '<i class="glyphicon glyphicon-th-list"></i> Detail View in Modal', 'class' => 'btn btn-primary'],
]);
$pjax = Pjax::begin(['timeout' => 3000]);
echo DetailView::widget([
'model' => $contact,
'mode' => DetailView::MODE_EDIT,
'panel' => [
'heading' => 'Контакт #' . $contact->id,
'type' => DetailView::TYPE_DEFAULT,
],
'attributes' => [
'id',
'type',
'title',
'data',
'lat_long',
'comment',
],
'formOptions' => [
'options' => ['data-pjax' => 1],
'enableClientValidation' => false,
],
]);
Pjax::end();
Modal::end();
$this->registerJs("
$('#{$pjax->getId()}').on('pjax:end', function () {
$.pjax.reload({container: '#model-contacts'});
})
");
}