<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/bootstrap.css" />
<title></title>
<style type="text/css">
.modal-content{
width:300px;
margin: 100px;
}
</style>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="modal-demo">
<custom-demo modal-title="标题"></custom-demo>
<custom-demo >
<ul slot="panelBody">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<div slot="footerBtns">
<a href="#" @click="confirm">确定</a>
<a href="#" @click="cancel">取消</a>
</div>
</custom-demo>
<custom-demo @on-click="onclose1" @on-save="onsave1">
<ul slot="panelBody">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</custom-demo>
</div>
</body>
<script type="text/javascript">
Vue.component("custom-demo",{
props:{
modalTitle:{
type:String,
default:'默认title'
}
},
template:`
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">{{modalTitle}}</h4>
</div>
<div class="modal-body">
<slot name="panelBody">
<p>One fine body…</p>
</slot>
</div>
<div class="modal-footer">
<slot name="footerBtns">
<button type="button" class="btn btn-default" data-dismiss="modal" @click="cloes">Close</button>
<button type="button" class="btn btn-primary" @click="save">Save changes</button>
</slot>
</div>
</div>
`,
methods:{
cloes:function(){
alert("子close");
this.$emit("on-click");
},
save:function(){
alert("子save");
this.$emit("on-save");
}
}
});
new Vue({
el:".modal-demo",
methods:{
confirm:function(){
alert("确定");
},
cancel:function(){
alert("取消");
},
onclose1:function(){
alert("修改一个样式");
alert("父确定")
},
onsave1:function(){
alert("父取消")
}
}
})
</script>
</html>
vue modal组件
最新推荐文章于 2024-06-21 09:41:59 发布