我正在尝试使用v-attr添加包含冒号的属性,冒号是Vuejs key:value的定界符。它不会编译。

<svg>
    <use xmlns:xlink="http://www.w3.org/1999/xlink"
        v-attr="xmlns:href: '#' + iconID"></use>
</svg>

我也尝试过
<svg class="lego-icon">
    <use xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:href="#[[ iconID ]]"></use>
</svg>

结果相似。

最佳答案

我还没有使用过vue.js,但是看着the source for v-attr,它似乎是为处理xlink:href而设计的。

麻烦在于您的属性是错误的。应该是xlink:href,而不是xmlns:href。尝试:

<svg>
    <use v-attr="xlink:href: '#' + iconID"></use>
</svg>

(如果要在HTML页面中嵌入SVG,则不需要xmlns:xlink="http://www.w3.org/1999/xlink")。

10-06 07:47