Vue.js - Модули Buefy (Radio btns / Check Box)

Я практикую back-end в Laravel, а для front-end я использую Vue.js - модули Buefy, и у меня небольшие проблемы с Radio и CheckBox.

Здесь Пользователь должен выбрать одну из двух предложенных радиостанций:

<div class = "block">
      <b-radio-group v-model = "permissionType">
          <b-radio name = "permission_type" value = "basic">Basic Permission</b-radio>
          <b-radio name = "permission_type" value = "crud">CRUD Permission</b-radio>
      </b-radio-group>
  </div>

Если Пользователь щелкнет по первому btun (Basic), должны появиться 3 поля ввода:

<div class = "field" v-if = "permissionType == 'basic'">
   <label for = "display_name" class = "label">Name (Display Name)</label>
   <p class = "control">
     <input type = "text" class = "input" name = "display_name" id = "display_name">
   </p>
</div>

      <div class = "field" v-if = "permissionType == 'basic'">
        <label for = "name" class = "label">Slug</label>
        <p class = "control">
          <input type = "text" class = "input" name = "name" id = "name">
        </p>
      </div>

      <div class = "field" v-if = "permissionType == 'basic'">
        <label for = "description" class = "label">Description</label>
        <p class = "control">
          <input type = "text" class = "input" name = "description" id = "description" placeholder = "Describe what this permission does">
        </p>
      </div>

Если пользователь щелкнет второй btn (CRUD), должны появиться 1 вход, 4 флажка btns и таблица, но они не появятся.

<div class = "field" v-if = "permissionType == 'crud'">
        <label for = "resource" class = "label">Resource</label>
        <p class = "control">
          <input type = "text" class = "input" name = "resource" id = "resource" v-model = "resource" placeholder = "The name of the resource">
        </p>
      </div>

      <div class = "columns" v-if = "permissionType == 'crud'">
        <div class = "column is-one-quarter">
          <b-checkbox-group v-model = "crudSelected">
            <div class = "field">
              <b-checkbox custom-value = "create">Create</b-checkbox>
            </div>
            <div class = "field">
              <b-checkbox custom-value = "read">Read</b-checkbox>
            </div>
            <div class = "field">
              <b-checkbox custom-value = "update">Update</b-checkbox>
            </div>
            <div class = "field">
              <b-checkbox custom-value = "delete">Delete</b-checkbox>
            </div>
          </b-checkbox-group>
        </div> <!-- end of .column -->

        <input type = "hidden" name = "crud_selected" :value = "crudSelected">

        <div class = "column">
          <table class = "table" v-if = "resource.length >= 3">
            <thead>
              <th>Name</th>
              <th>Slug</th>
              <th>Description</th>
            </thead>
            <tbody>
              <tr v-for = "item in crudSelected">
                <td v-text = "crudName(item)"></td>
                <td v-text = "crudSlug(item)"></td>
                <td v-text = "crudDescription(item)"></td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>

Я проверил документацию Buefy, были некоторые обновления, но когда я меняю код, все равно не работает ..

Вот сценарий:

  <script>
        var app = new Vue({
          el: '#app',
          data: {
            permissionType: 'basic',
            resource: '',
            crudSelected: ['create', 'read', 'update', 'delete']
          },
          methods: {
            crudName: function(item) {
              return item.substr(0,1).toUpperCase() + item.substr(1) + " " + app.resource.substr(0,1).toUpperCase() + app.resource.substr(1);
            },
            crudSlug: function(item) {
              return item.toLowerCase() + "-" + app.resource.toLowerCase();
            },
            crudDescription: function(item) {
              return "Allow a User to " + item.toUpperCase() + " a " + app.resource.substr(0,1).toUpperCase() + app.resource.substr(1);
            }
          }
        }); 
    </script>

Сюда помещаю исходный код без изменений, если бы кто поправил, буду признателен. Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
1 236
1

Ответы 1

вы забыли добавить v-модель в свою радиогруппу, попробуйте это, и она должна работать

<div class = "block">
  <b-radio-group v-model = "permissionType">
      <b-radio v-model = "permissionType" name = "permission_type" native-value = "basic">Basic Permission</b-radio>
      <b-radio v-model = "permissionType" name = "permission_type" native-value = "crud">CRUD Permission</b-radio>
  </b-radio-group>

Другие вопросы по теме