gpt4 book ai didi

javascript - 从变量引用时 setAttribute 不是函数

转载 作者:行者123 更新时间:2023-11-28 12:51:51 24 4
gpt4 key购买 nike

我正在开发一个 VueJS 项目,其中有一个 icon包含内联 SVG 代码的变量。我想添加width属性为<svg></svg>元素动态地从计算属性。但是,即使我在变量中具有 SVG 图标的正确代码,setAttribute不工作并抛出错误。我不确定我在这里缺少什么。

以下内容来自 Vue 模板,我想在其中显示内联 SVG 代码:

<code v-text="appendDimension"></code>

我在 Vue 单个组件中有以下内容:

export default {
name: "App",
data() {
return {
dimension: 50,
icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M11 9h4v2h-4v4H9v-4H5V9h4V5h2v4zm-1 11a10 10 0 110-20 10 10 0 010 20zm0-2a8 8 0 100-16 8 8 0 000 16z"/></svg>'
}
},
computed: {
appendDimension() {
return this.icon.setAttribute("width", this.dimension);
}
}
};

我在CodeSandbox上创建了一个测试项目您可以用它来重现它。任何帮助将不胜感激。

最佳答案

由于 this.icon 的值是一个字符串,您可以在返回之前动态更改该字符串。您的计算方法可能如下所示:

computed: {
appendDimension() {
return this.icon.replace("<svg ", "<svg width='" + this.dimension + "' ");
}
}

您还应该更改您的 <code v-text="appendDimension"></code><code v-html="appendDimension"></code>因为你想要渲染 html 而不是字符串本身。但这是我的猜测;)

关于javascript - 从变量引用时 setAttribute 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60639028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com