tom*_*bak 38 angular2-template angular
我有用于渲染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';
}
Run Code Online (Sandbox Code Playgroud)
这会触发错误:
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
Run Code Online (Sandbox Code Playgroud)
我该如何设置动态xlink:href?
Gün*_*uer 68
SVG元素没有属性,因此大多数时候都需要属性绑定(另请参见HTML中的属性和属性).
对于属性绑定,您需要
<use [attr.xlink:href]="iconHref">
Run Code Online (Sandbox Code Playgroud)
要么
<use attr.xlink:href="{{iconHref}}">
Run Code Online (Sandbox Code Playgroud)
更新
消毒可能会导致问题.
也可以看看
更新 DomSanitizationService将DomSanitizer在RC.6中重命名为
更新这个应该是固定的
但是有一个开放的问题来支持命名空间属性https://github.com/angular/angular/pull/6363/files
随着解决方案添加额外的
xlink:href=""
Run Code Online (Sandbox Code Playgroud)
Angular可以更新属性,但是有添加问题.
如果xlink:href实际上是一个属性,那么在添加PR之后你的语法也应该有效.
| 归档时间: |
|
| 查看次数: |
16192 次 |
| 最近记录: |