gpt4 book ai didi

Angular2 SVG xlink :href

转载 作者:太空狗 更新时间:2023-10-29 16:48:23 27 4
gpt4 key购买 nike

我有渲染 SVG 图标的组件:

import {Component, Directive} from 'angular2/core';
import {COMMON_DIRECTIVES} from 'angular2/common';

@Component({
selector: '[icon]',
directives: [COMMON_DIRECTIVES],
template: `<svg role="img" class="o-icon o-icon--large">
<use [xlink:href]="iconHref"></use>
</svg>{{ innerText }}`
})
export class Icon {
iconHref: string = 'icons/icons.svg#menu-dashboard';
innerText: string = 'Dashboard';
}

这会触发错误:

EXCEPTION: Template parse errors:
Can't bind to 'xlink:href' since it isn't a known native property ("<svg role="img" class="o-icon o-icon--large">
<use [ERROR ->][xlink:href]=iconHref></use>
</svg>{{ innerText }}"): SvgIcon@1:21

如何设置动态xlink:href

最佳答案

SVG 元素没有属性,因此大多数时候都需要属性绑定(bind)(另请参阅 Properties and Attributes in HTML)。

对于属性绑定(bind)你需要

<use [attr.xlink:href]="iconHref">

<use attr.xlink:href="{{iconHref}}">

更新

sanitizer 可能会导致问题。

另见

更新 DomSanitizationService 将在 RC.6 中重命名为 DomSanitizer

更新这应该是固定的

但是有一个 Unresolved 问题来支持命名空间属性 https://github.com/angular/angular/pull/6363/files

作为解决方法,添加一个额外的

xlink:href=""

Angular 可以更新属性,但添加有问题。

如果 xlink:href 实际上是一个属性,那么您的语法在添加 PR 后也应该有效。

关于Angular2 SVG xlink :href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082657/

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