鍍金池/ 問答/HTML5  HTML/ vue點擊刪除時,我怎么確定點的是第幾個?

vue點擊刪除時,我怎么確定點的是第幾個?

頁面如圖所示:

clipboard.png

點擊刪除時

clipboard.png

現(xiàn)在的問題是:我點擊刪除后,我怎么判斷我刪除的這個id為多少?

HTML代碼:

<div id="app" class="container"> 
    <table class="table table-hover">
        <tbody>
            <tr>
                <th>id</th>
                <th>名稱</th>
                <th>操作</th>
            </tr>
            <tr v-for="item in formData">
                <th>{{item.id}}</th>
                <th>{{item.name}}</th>
                <th><button data-toggle="modal" data-target="#myModal">刪除</button></th>
            </tr>
        </tbody>
    </table>
    
    <!-- 彈出框 -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">提示</h4>
                </div>
                <div class="modal-body">
                    你確定要刪除嗎?
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                    <button type="button" class="btn btn-primary" @click="clickMe">確定</button>
                </div>
            </div>
        </div>
    </div>
</div>

js代碼:

new Vue({
    el:"#app",
    data:{
        formData:[
            {
                id:1,
                name:"蘋果"
            },
            {
                id:2,
                name:"西瓜"
            },
            {
                id:3,
                name:"葡萄"
            },
        ]
    },
    methods:{
        clickMe:function(){
            alert("你刪除的id為:" + 1); //這里要彈出我點刪除的id為多少
        }
    }
})
回答
編輯回答
冷咖啡

在v-for 循環(huán)中,會出現(xiàn) index ,只需要點擊的時候,把index 、id 傳遞到方法中即可

<ul>
    <li v-for="(item,index) in dataArr" @click="del(index,item.id)" :key="item.id">
        {{item.name}}
    <li/>
</ul>

使用方法接受參數(shù):index 、id

methods:{
   del(index,id){
         console.log(id)//當前id
         this.dataArr.splice(index,1); //刪除當前行
    }
}

2018年1月6日 15:06
編輯回答
巴扎嘿

我的看法:
可以在刪除的button上綁定click事件,點擊后設(shè)置selectedRow為當前選中行的idx,這樣就可以通過this.selectedRow獲取。

 <tr v-for="item,idx in formData">
   <th>{{item.id}}</th>
   <th>{{item.name}}</th>
<th><button data-toggle="modal" @click="showDeleteModel(idx)">刪除</button>
showDeleteModel(idx){
this.selectedIdx=idx;
this.deleteModelDisplay=true;
}

deleteModelDisplay用來控制model的顯隱(v-if)。這樣就全是vue的思路了。


bootstrap-table的事件用vue邏輯會清楚些。 不然你繼續(xù)寫下去就會混亂的,數(shù)據(jù)被誰控制、頁面受誰渲染...

2018年4月22日 05:40
編輯回答
苦妄

這個不簡單嗎?在父節(jié)點監(jiān)聽子節(jié)點,點擊哪個節(jié)點,就把該節(jié)點地數(shù)據(jù)通過觸發(fā)父節(jié)點地監(jiān)聽事件傳遞給父組件。
具體可以參考我這個Vue 樹形組件:
https://github.com/kangbb/tree

2017年5月3日 01:40
編輯回答
擱淺
<div id="app" class="container"> 
    <table class="table table-hover">
        <tbody>
            <tr>
                <th>id</th>
                <th>名稱</th>
                <th>操作</th>
            </tr>
            <tr v-for="item in formData">
                <th>{{item.id}}</th>
                <th>{{item.name}}</th>
                <th><button data-toggle="modal" @click='current_id=item.id' data-target="#myModal">刪除</button></th>
            </tr>
        </tbody>
    </table>
    
    <!-- 彈出框 -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">提示</h4>
                </div>
                <div class="modal-body">
                    你確定要刪除嗎?
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                    <button type="button" class="btn btn-primary" @click="clickMe">確定</button>
                </div>
            </div>
        </div>
    </div>
</div>
new Vue({
    el:"#app",
    data:{
        current_id: 0,
        formData:[
            {
                id:1,
                name:"蘋果"
            },
            {
                id:2,
                name:"西瓜"
            },
            {
                id:3,
                name:"葡萄"
            },
        ]
    },
    methods:{
        clickMe:function(){
            alert("你刪除的id為:" + current_id); //這里要彈出我點刪除的id為多少
        }
    }
})
2017年4月26日 18:14