我在一个Vue项目中有几个简单的2模态。我想在警报中使用自定义组件。例如:
<template>
<h1>Hello {{name}}</h1>
</template>
<script>
module.exorts: {
props: ["name"]
}
</script>
我的模板。vue
在我亲爱的情态中:
swal({
titleText: "Hi",
html: '<my-template name="hello"></my-template>'
});
我甚至不确定这是否可能,或者如何做到。
我设法使它工作如下:
我将模板的所有逻辑都包含在背景符号之间:``
您还需要编辑vue。配置。js文件并添加到configurewebpack对象中,添加以下内容:“vue$:”vue/dist/vue。esm。js'
configureWebpack: {
resolve: {
alias: {
'src': resolveSrc('src'),
'chart.js': 'chart.js/dist/Chart.js',
// add this line for include components inside swal alert
'vue$':'vue/dist/vue.esm.js'
}
}
}
完成后,您必须重新启动“npm运行开发”项目
这是我的完整示例,经过测试并有效
openSweet() {
Vue.component('my-comp', {
template: `
<div class="card-content">
<div class="span2">
<div class="col-sm-6 col-md-2 col-lg-3">
<div class="row">
<div style="margin-top: 6px;" >
<p-switch v-model="switchTrip.state" type="primary"
on-text="ON" off-text="OFF" style="justify-content:center"></p-switch>
<h5 class="card-title" style="margin-left:
25px;">Recorridos</h5>
</div>
</div>
<div class="row">
<div style="margin-top: 6px;" >
<p-switch v-model="switchVel.state" type="primary"
on-text="ON" off-text="OFF" style="justify-content:center"></p-switch>
<h5 class="card-title" style="margin-left:
25px;">Velocidad</h5>
</div>
</div>
</div>
</div>
<div class="span2">
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="row">
<div >
<input type="search" class="form-control input-sm"
placeholder="km / h" v-model="vmax">
<h5 class="card-title">Vel. Max</h5>
</div>
</div>
<div class="row">
<div>
<input type="search" class="form-control input-sm"
placeholder="minutos" v-model="tol">
<h5 class="card-title">Tolerancia</h5>
</div>
</div>
</div>
</div>
</div>
`,
data () {
return {
switchVel: {
state: false
},
switchEvent: {
state: false
},
switchTrip: {
state: false
},
search: '',
vmax: '',
tol: ''
}
},
components: {
[Button.name]: Button,
Card,
PSwitch
}
})
new Vue({
el: '#modal',
beforeCreate: () => {
swal({
titleText: "Descarga de Reportes",
showCancelButton: true,
cancelButtonText: 'Cancelar',
confirmButtonText: 'Descargar',
// confirmButtonAriaLabel: 'glyphicon glyphicon-ok-sign',
// cancelButtonAriaLabel: 'glyphicon glyphicon-remove-sign',
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
width: 800,
html: '<div id="modal"><my-comp></my-comp></div>'
})
}
})
}
我希望这对你有帮助
问候
您可以在应用程序中渲染和隐藏内容:
<div id="swalHTML" style='display: none'>
<my-template name="hello"></my-template>
</div>
然后将元素的innerHTML传递给警报:
let el = document.getElementById('swalHTML')
swal({
html: el.innerHTML
});
从技术上讲,这看起来是可能的:
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
new Vue({
el: '#modal',
beforeCreate: swal({
titleText: "Hi",
html: '<div id="modal"><my-component></my-component></div>'
})
})
但你可能想把它包装成一个函数。看看我的小提琴:
JS小提琴
这只是一个想法,对我来说看起来不太好,但仍然有效。我还必须提到,每次以这种方式打开对话框时,都会创建新的vue实例。
选项2从评论到我的回答:
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
swal({
html: "<my-component></my-component>"
})
new Vue({
el: swal.getHtmlContainer()
})
不停摆弄
我在vue方法中启动Sweatrep时遇到问题。如果我直接在脚本中调用Sweatrep,但当我想在单击按钮时启动Sweatrep时不会发生任何事情(控制台中没有错误)。代码看起来 Vue(Vuetify) 这项工作 不行 我是新的Vue,所以也许错误很容易看到,但我不知道为什么没有工作。 所以问题是:为什么当我点击一个按钮时不能启动sweetalert模式?
我有一个sweetAlert2模式,我想在它里面使用一个图像,但是我引用了一个像src=“./assets/img/cry.png”或src=“../assets/img/cry.png”这样的img,它不会显示出来,但在vue的其他部分,这个src地址工作正常,我应该如何在sweetAlert2中引用它?
如果无法从服务器检索数据,我尝试弹出sweetalert 我在main.js中导入了甜蜜警报: 在桌子里面。我试图调用swal的vue组件,但出现了一个错误,改为(undefined$this.swal): 有什么建议如何解决这个问题吗?
SweetAlert2 是一个漂亮、响应式、可定制、易用的(WAI-ARIA) JavaScript 弹窗(弹出框)。无任何依赖。 安装 npm install --save sweetalert2 或: bower install --save sweetalert2 也可从 CDN 直接下载:cdnjs.com/limonte-sweetalert2 使用 <script src="bower
本文向大家介绍vue项目中使用rem,在入口文件添加内容操作,包括了vue项目中使用rem,在入口文件添加内容操作的使用技巧和注意事项,需要的朋友参考一下 在使用vue-cli搭建好项目框架后,在目录结构的index.html文件中添加一段js代码: 然后在写css就可以将px单位换成rem. 这里设置的比例是20px=1rem, 例如:宽度为100px时,可以直接写成5rem 补充知识:vue
本文向大家介绍在vue组件中使用axios的方法,包括了在vue组件中使用axios的方法的使用技巧和注意事项,需要的朋友参考一下 现在我们通过webpack+vue-cli搭建起了一个vue项目的框架,如果我们需要在vue组件中使用axios向后台获取数据应该怎么办呢? 通常情况下,我们搭建好的项目目录应该是这样子的 首先需要安装axios,这个会npm的都知道 下一步,在main.js中引入a