iView的Notice通知怎么自定义关闭按钮?

Designer°瑞云 阅读 26

我在用iView的Notice组件时,想把默认的“×”关闭按钮换成文字“关闭”,但文档里没找到相关配置。试过在desc里加<span>关闭</span>也不行,点不了。有办法自定义这个按钮吗?

我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
UX颖昕
UX颖昕 Lv1
iView的Notice组件默认不支持直接替换关闭按钮,但可以通过覆盖样式和自定义事件来实现。拿去改改下面这段代码:

<script>
let noticeInstance = this.$Notice.open({
title: '标题',
desc: '描述内容',
onClose: function() {
// 自定义关闭逻辑
}
})

// 覆盖默认样式
document.querySelector('.ivu-notice-close').innerHTML = '关闭'

// 绑定点击事件
document.querySelector('.ivu-notice-close').addEventListener('click', function() {
noticeInstance.close()
})
</script>


注意要等Notice渲染完再操作DOM,可能会有闪烁问题。如果对性能要求高,考虑用CSS隐藏默认按钮,自己加个新元素。不过这个方法简单粗暴,能解决问题就行。
点赞
2026-03-30 16:24
萌新.玉霞
iView的Notice组件默认情况下确实不提供直接修改关闭按钮的配置项,不过你可以通过自定义样式和事件来实现。你需要监听Notice的render函数来自定义内容。

首先,你需要在Notice组件中使用render函数来自定义渲染内容。然后,在这个render函数中你可以添加一个自定义的关闭按钮,并绑定点击事件来手动关闭Notice。

下面是一个简单的示例:

pre class="pure-highlightjs line-numbers">this.$Notice.open({
title: '自定义关闭按钮',
desc: '这是一个带有自定义关闭按钮的通知',
render: h => {
return h('div', [
h('span', '这是一个带有自定义关闭按钮的通知'),
h('Button', {
props: {
type: 'text'
},
style: {
marginLeft: '10px'
},
on: {
click: () => {
this.$Notice.close()
}
}
}, '关闭')
])
}
})


在这个例子中,我们使用了render函数来渲染Notice的内容,并且在内容后面添加了一个Button组件作为关闭按钮,点击该按钮会触发this.$Notice.close()方法来关闭当前的Notice。

注意:这里假设你已经在项目中引入了iview的Button组件,并且已经全局注册或者局部引入了Notice和Button组件。如果还没有引入这些组件,记得先引入并注册它们。
点赞
2026-03-22 10:02