亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 Laravel 和 Vue.js v-model 問題的待辦事項列表

帶有 Laravel 和 Vue.js v-model 問題的待辦事項列表

慕斯王 2022-01-07 19:35:00
我用 Laravel 和 Vue.js 制作了一個 todolist:我可以添加一個類別,我可以為每個類別添加一個 todos 列表。對于每個類別列表,都有一個為該類別添加新待辦事項的輸入。我用一個組件制作了所有東西。我用 Laravel 創建了 api。一切都很完美。唯一的問題是:當我在輸入“添加待辦事項”中寫一些東西時,它也會寫在其他輸入中。這是合乎邏輯的,因為輸入標簽中有 v-model 指令。是否可以繞過這種行為?vue組件的內容:<template><div>    <form @submit.prevent="addCategorie()">        <!-- Grid row -->        <div class="form-row align-items-center" style="margin-bottom: 2rem;">            <!-- Grid column -->            <div class="col-auto">                <!-- Default input -->                <input v-model="categorie.name" type="text" class="form-control" id="name" aria-describedby="name" placeholder="Categorie">            </div>            <!-- Grid column -->            <!-- Grid column -->            <div class="col-auto">                <button type="submit" class="btn btn-primary btn-md mt-0">Add</button>            </div>        </div>        <!-- Grid row -->    </form>     <div class="row">        <section v-for="(categorie) in categories" v-bind:key="categorie.id" class="col-sm-6 col-md-4">                <div class="card" style="margin-bottom: 2rem;">                    <div class="card-header align-items-center">                        <h3>{{ categorie.name }}                            <span @click="deleteCategorie(categorie.id)"  style="font-size: 24px; color: #FF3547;">                                <i class="fas fa-trash-alt"></i>                            </span>                        </h3>                    </div>                    <ul v-for="todo in categorie.todos" v-bind:key="todo.id" class="list-group list-group-flush">                        <li class="list-group-item">                            {{ todo.name }}                            <span @click="deleteTodo(todo.id)"  style="font-size: 14px; color: #FF3547;">                                <i class="fas fa-trash-alt"></i>                            </span>                        </li>                    </ul>                </div>        </section>    </div></div>
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

最后,我找到了另一個解決方案,我從輸入中獲取值并將參數傳遞給 api url


代碼:


在模板中輸入:


<input  v-on:keyup.enter="addTodo(categorie.id)" type="text" class="form-control" v-bind:id="categorie.id" aria-describedby="name" placeholder="Add a todo">

函數:addTodo()


addTodo(categorie_id) {

            let val = document.getElementById(categorie_id).value

            fetch(`api/todo/${categorie_id}/${val}`, {

            method: 'post',

            body: JSON.stringify(this.todo),

            headers: {

                'content-type': 'application/json'

                }

            })

            .then(res => res.json())

            .then(data => {

                this.clearInput(categorie_id);

                this.fetchTodos();

                this.fetchCategories();

            })

            .catch(err => console.log(err));

        },

以及清除輸入的功能:


clearInput(categorie_id) {

            document.getElementById(categorie_id).value = '';

        }


查看完整回答
反對 回復 2022-01-07
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

您的數據中應該有另一個屬性可在輸入字段中使用,例如 form: { name: '' } 并在您的輸入 v-model="form.name" 上將此屬性用作 v-model


查看完整回答
反對 回復 2022-01-07
  • 2 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號