Html代码
<tbody id="itemtr">
<tr is="item-row" v-for="item in items" v-on:editclick="editclick" v-on:removeclick="removeclick" v-bind:item="item"></tr>
<!-- more data -->
</tbody>
定义JavaScript模板
<script type="text/x-template" id="item-tr" >
<tr v-bind:id="'tr_' +item.id">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>
<button v-on:click="editclick">编辑</button>
<button v-on:click="removeclick">删除</button>
</td>
</tr>
</script>
components组件
Vue.component("item-row", {
props: ["item"],
template: "#item-tr",
methods: {
editclick: function () {
this.$emit('editclick', this.item)
},
removeclick: function () {
this.$emit('removeclick', this.item)
}
}
})
Ajax请求数据
function loadItems() {
$.ajax({
method: "GET",
url: "/Article/getallArticle",
data: {},
success: function (backData) {
console.log(backData);
if (backData.code == 1) {
new Vue({
el: '#itemtr',
data: {
items: backData.data
},
methods: {
editclick: function (itemObject) {
console.log(itemObject)
},
removeclick: function (itemObject) {
console.log(itemObject)
}
}
})
} else {
layer.msg(backData.msg);
}
},
error: function (error) {
layer.msg(error.statusText);
}
})
}
执行函数
$(function () {
loadItems();
})