【发布时间】:2015-11-06 13:28:44
【问题描述】:
你好互联网人!我有许多 IE 特定问题之一,希望有人能帮助我解决...
我正在尝试在属性级指令中使用 ng-transclude 来将内容转入 SVG 中。我将属性放在 SVG 元素上,并尝试通过 ng-repeat 渲染一系列矩形(或者实际上,我想要的任何 SVG 元素)。这一切都适用于 Firefox、Chrome 甚至 Opera。然而,使用 IE 和新的 Edge 浏览器,浏览器只会清空应该被嵌入的内容(我得到一个空的父元素)。
angular.module("test", []).directive("transcludeTest", [function(){
return{
restrict: 'A',
templateNamespace:"svg",
transclude: true,
template: '<g ng-transclude></g>'
}
}]);
<svg>
<g transclude-test>
<!-- whatever SVG content I want -->
<rect x="50" y="50" width="100" height="100"></rect>
</g>
</svg>
结果:
<svg>
<g transclude-test=""></g>
</svg>
更奇怪的是,在 HTML 元素(Div 等)上使用属性级指令可以正常工作。
这有点难以解释,所以我在一个例子中包含了一个 Plunker。它应该用“Testing”和 3 个黑色方块渲染 3 个 h1 标签。在普通浏览器中,一切都按预期加载。在 Microsoft 浏览器中,仅呈现“测试”文本。
【问题讨论】:
标签: javascript angularjs internet-explorer svg