如果svg <use>
可以在IE 11中工作以及如何在Angular 2组件中工作,那么有人能指出我吗?
它在Chrome中运行良好但在我的IE中无效。
我确实包含了svg4everybody.js库,但是如果我在组件模板或模板url中使用它,它就不起作用。
请告诉我应该怎么做。非常感谢你
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `
<h1>My First Angular 2 App</h1>
<svg viewBox="0 0 32 32" width='150' height='150' fill='pink' role='img'>
<use xlink:href="app/sprites.svg#splitup"/>
</svg>
`
})
export class AppComponent { }
&#13;
<html>
<head>
<title>Angular 2 QuickStart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/svg4everybody/svg4everybody.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
&#13;
答案 0 :(得分:3)
嗯,它与IE11无关,支持SVG或不支持。问题是,当加载svg4everybody.js并调用svg4everybody()方法时,你的模板不会在DOM中呈现。
因此,您需要从组件的ngOnInit方法调用svg4everybody()。 请参阅:Include External JavaScript Libraries In An Angular 2 TypeScript Project
答案 1 :(得分:0)
。但是内联svg会起作用。 因此,您应该依赖模块将符号作为独立的svg导入dom。
您可以使用该模块:https://github.com/arkon/ng-inline-svg
使用IE11的[forceEvalStyles]="true"
参数。
此lib不适用于IE10,可能原因是innerHTML
无法使用带有SVG内容的IE10。
垫片可用(我没有在IE10上测试ng-inline-svg)