Как исправить эти ошибки, которые я получаю в консоли?

#vue.js #vuejs2

#vue.js #vuejs2

Вопрос:

Я получаю эти 2 ошибки в моей консоли, и мое приложение не работает

 app.js:38306 [Vue warn]: Cannot find element: #app
warn @ app.js:38306
query @ app.js:43338
./node_modules/vue/dist/vue.common.dev.js.Vue.$mount @ app.js:49554
Vue._init @ app.js:42684
Vue @ app.js:42750
./resources/js/app.js @ app.js:49751
__webpack_require__ @ app.js:20
0 @ app.js:49900
__webpack_require__ @ app.js:20
(anonymous) @ app.js:84
(anonymous) @ app.js:87
DevTools failed to load SourceMap: Could not load content for http://127.0.0.1:8000/js/popper.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
app.js:38306 [Vue warn]: Error compiling template:

<div v-model="permissionType">: v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.

286|          <div class="col-md-12">
287|          <div class="row my-3">
288|              <div class="col-md-10" v-model="permissionType">
   |                                     ^^^^^^^^^^^^^^^^^^^^^^^^
289|                  <div class="custom-control custom-radio custom-control-inline">
290|                      <input type="radio" id="basic" name="permission_type" class="custom-control-input" value="basic">

(found in <Root>)
  

мой файл администратора

 <!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="Laravel SB Admin 2">
    <meta name="author" content="Alejandro RH">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>
       
    <script src="{{ asset('js/app.js') }}"></script>
   
    <!-- Fonts -->
    <link href="{{ asset('vendor/fontawesome-free/css/all.min.css') }}" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/sb-admin-2.min.css') }}" rel="stylesheet">
    <link href="{{ asset('css/backApp.css') }}" rel="stylesheet">

    <!-- Favicon -->
    <link href="{{ asset('img/favicon.png') }}" rel="icon" type="image/png">
    
</head>
<body id="page-top">
<div id="app">
.
.
.
.
.
.
.
 <div class="container-fluid">
            
     @yield('main-content')

 </div>
.
.
.
.
.
.

<script src="{{ asset('js/sb-admin-2.min.js') }}"></script>
@yield('js_index_page')
</body>
</html>
  

create.blade.php

 @extends('layouts.admin')

@section('main-content')
    <!-- Page Heading -->
    <h1 class="h3 mb-4 text-gray-800">Create New Permission</h1>
    <hr/>
    @if (session('message'))
    <div class="alert alert-success border-left-success alert-dismissible fade show" role="alert">
        {{ session('message') }}
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">amp;times;</span>
        </button>
    </div>
    @endif
    <div class="row justify-content-center">
        <div class="col-md-12">
        <div class="row my-3">
            <div class="col-md-10" v-model="permissionType">
                <div class="custom-control custom-radio custom-control-inline">
                    <input type="radio" id="basic" name="permission_type" class="custom-control-input" 
                    value="basic" />
                    <label class="custom-control-label font-weight-bold" for="basic">Simple Permission</label>
                </div>
                <div class="custom-control custom-radio custom-control-inline">
                    <input type="radio" id="crud" name="permission_type" class="custom-control-input" 
                    value="crud" />
                    <label class="custom-control-label font-weight-bold" for="crud">Advance Permission</label>
                </div>
            </div>
        </div>
            <div class="card shadow mb-4">
                <div class="card-body">
                    <h4 class="font-weight-bold">Permission Details:</h4>
                 <hr>
                <form method="POST" action="{{ route('roles.store')}}">
                    @csrf
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-group" v-if="permissionType =='basic'">
                                <label for="name" class="font-weight-bold">Name</label>
                                <input type="text" name="name" class="form-control @error('name') is-invalid @enderror" id="name" value="{{ old('name') }}" required>
                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                            <div class="form-group" v-if="permissionType =='basic'">
                                <label for="name" class="font-weight-bold">Slug</label>
                                <input type="text" name="slug" class="form-control @error('slug') is-invalid @enderror" id="slug" value="{{ old('slug') }}" required disabled>
                                @error('slug')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                            <div class="form-group" v-if="permissionType =='basic'">
                                <label for="description" class="font-weight-bold">Description</label>
                                <input type="text" name="description" class="form-control  @error('description') is-invalid @enderror" id="description" value="{{ old('description') }}" required>
                                @error('description')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>
                    </div>
                </div>
            </div>


            <div class="card shadow mb-4"  v-if="permissionType =='crud'">
                <div class="card-body">
                    <h4 class="font-weight-bold">Permissions:</h4>
                    <div class="row">
                        <div class="col-md-12">
.
.
.
.

            </form>

        </div>

    </div>

@endsection

@section('js_index_page')
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                permissionType: 'basic',
                resource: '',
                crudSelected: ['create', 'read', 'update', 'delete']
            },
            methods: {}
        });
    </script>
@endsection
  

Я пытался исправить эти ошибки, но безуспешно… Я не знаю, что я делаю не так, я не знаком с vue в сочетании с laravel… Код Laravel работает нормально, но когда я включаю vue, я получаю вышеуказанные 2 ошибки

Комментарии:

1. Вы не можете связать элемент div с v-model. Чего вы пытаетесь достичь?

Ответ №1:

В вашем блейд-компоненте должен быть элемент с идентификатором приложения. <div id="app"></div> и поместите свой компонент vue внутри этого элемента.

Ответ №2:

v-модель может использоваться только для ввода формы, текстовой области и выбора элементов в соответствии с https://v2.vuejs.org/v2/guide/forms.html

Комментарии:

1. хорошо, понял… но как мне исправить другую ошибку: app.js:38306 [Vue warn]: Cannot find element: #app

2. Я не знаю об этом. У меня нет опыта работы с PhP

3. В app.js , есть строка кода, которая называет элемент, используемый для отображения компонентов vue, и по умолчанию используется app . Поэтому необходимо добавить id =»app» к любому html-элементу, в который вы вставляете свой материал vue. Смотрите мой ответ ниже. Я новичок в Vue, но это то, что мне нужно было сделать, чтобы это сделать.