【发布时间】:2016-03-23 08:47:38
【问题描述】:
我正在使用 dom-repeat 对对象进行迭代,并且希望在每次迭代时引用 SVG 精灵表中的不同图标。为了添加一个图标,我尝试使用 <use xlink:href="sprite.svg#id"> 方法,与 Polymer 的计算绑定混合。这是 dom-repeat 块中的代码:
<template is='dom-repeat' items="{{currentPlan.functionalities}}">
<div class="resourceRow rowParent">
<div class="functionIconContainer columnParent">
<svg><use xlink:href$="{{ _getIconURL(item.id) }}"/></svg>
</div>
</div>
</template>
& JS 逻辑:
_getIconURL: function(iconID){
var url = "sprite.svg#" + iconID;
return url;
}
据我在开发工具中看到的,此代码输出我想要的内容,但图标仍然没有显示。作为参考,以下是写入 DOM 的示例:
<svg class="style-scope">
<use class="style-scope" xlink:href="sprite.svg#id"/>
</svg>
这是一个错误还是我的误解?
【问题讨论】:
-
如果您手动(静态)将 HTML 添加到 DOM 是否有效?现在它看起来与 Polymer 无关。图标在哪里定义?
-
如果我在 dom-repeat 中静态输入 1 个图标(所以
<use xlink:href="sprite.svg#icon1"/>),它会按预期显示。 -
这只是特定浏览器还是几个浏览器?
-
我目前已经测试过 Chrome 和 Safari
-
看起来像 stackoverflow.com/questions/33146886 的副本。 stackoverflow.com/questions/28474161 也可能是相关的,但似乎只发生在 FF 中
标签: javascript dom svg polymer