vue.js - Vue.js 中的动态类绑定 SVG
问题描述
下面使用数组语法一次性绑定静态和动态类。静态有效,但动态无效。
动态类绑定如何与 SVG 一起工作?
https://codesandbox.io/s/dynamic-class-binding-svg-in-vue-js-jc5qg
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<style>
.static {
stroke: black;
stroke-width: 1;
fill: yellow;
}
.dynamic {
fill: red;
}
</style>
</head>
<body>
<svg id="app" width="100%" height="100%">
<circle
cx="50" cy="50" r="40"
:class="[ 'static', dynamicToggle ? 'dynamic' : '' ]"
/>
</svg>
<button
@click.prevent="dynamicToggle = ! dynamicToggle"
>toggle color
</button>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
dynamicToggle: false
}
})
</script>
</body>
</html>
解决方案
button
不在 vue 应用程序中。
您可以将其包装在另一个 div 中以解决此问题:
<div id="app">
<svg width="100%" height="100%">
<circle
cx="50"
cy="50"
r="40"
:class="[ 'static', dynamicToggle ? 'dynamic' : '' ]"
/>
</svg>
<button @click.prevent="dynamicToggle = ! dynamicToggle">
toggle color
</button>
</div>
推荐阅读
- java - 作业帮助 - Java 继承和 Getters/Setters
- asp.net-core - 如何在自定义组件 Blazor 上使用绑定值和绑定值:事件
- c++ - C++ 代码的分段错误(核心转储)
- java - 使用依赖注入在 Java 中初始化对象
- r - 如何在单个列表中的数据框中添加两行并将结果行附加到 R 中的其他行
- r - 使用 R 查找一个月内多个事件的总时间
- javascript - 如何使用 Chai 和 mocha 在 Async await Node.js 单元测试代码中强制通过测试用例
- google-cloud-platform - bigquery 长期存储表列表
- java - 使 Minimax 返回最佳移动而不是最佳移动产生的分数
- podio - 通过 API 删除联系人