Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对包含冒号的属性使用v-attr';xmlns:href';不编译_Javascript_Svg_Vue.js - Fatal编程技术网

Javascript 对包含冒号的属性使用v-attr';xmlns:href';不编译

Javascript 对包含冒号的属性使用v-attr';xmlns:href';不编译,javascript,svg,vue.js,Javascript,Svg,Vue.js,我试图使用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

我试图使用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,但看看,它似乎是为处理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“
)。

您需要将xlink:href括在引号中,以便Vue不会将冒号视为参数分隔符()


对于新版本的
vue.js
,您可以使用

<use v-bind:href="'#icon-' + iconId"></use>

甚至

<use :href="'#icon-' + iconId"></use>


Vue.js
似乎会自动使用正确的名称空间设置属性。

我也有同样的问题,不幸的是,我无法实现这一点:我总是遇到以下错误:
[Vue warn]:表达式无效。生成的函数体:scope.href:'/svg/ico.svg#'+scope.option.icon
这是有效答案
<use :href="'#icon-' + iconId"></use>