@Inogami
php-программист, поковыриваю vue

Как сделать реактивность в yii2?

Хочу использовать реактивность из vue для реактивной смены текста на странице, поле формы вывожу так
<?= $form->field($model, 'example', [
                            'options' => [
                                'v-model' => 'example'
                            ]
                        ])->label(false) ?>

И вывожу vue вот так:
<script>
    var app = new Vue({
        el: '#fonter',
        data: {
            example:<?= '\'' . $model->example . '\''?>
        }
    })
</script>

Но после вывода у ActiveField пропадает v-model, а vue не инициализирует example
Знает кто как это подружить?
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
@DenisAlliswell
Насколько я понял, вопрос в том, как передавать данные из php во vue.js.

Один из вариантов может быть таким:

<?php
// Передаем данные из php
$this->registerJs("
     vueModel.example = '" . $model->example . "';
     vueModel.someOtherVariable = 123;
     vueModel.someOtherObject = " . json_encode($somePhpArray) . ";
", \yii\web\View::POS_BEGIN);
?>


// Если нужно добавить еще какие-либо данные из js
var vueModel.someJsVariable = 321;

var app = new Vue({
     el: '#fonter',
     data: vueModel,
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы