【发布时间】:2013-03-31 12:02:51
【问题描述】:
我想要一些关于使用带有 angular 的 xml 命名空间属性的意见。
问题是,当 Angular 解析表达式时,Angular 附带了几个指令来处理诸如 href 和 src 之类的写入属性(否则浏览器将尝试将 {{mymodel.myimage}} 作为 url 加载)
https://github.com/angular/angular.js/blob/master/src/ng/directive/booleanAttrs.js#L329
我面临的问题是我正在使用 angular 与 D3 一起输出 svg,并且由于 angular 无法输出 xlink:href 我被卡住了。
我创建了一个输出 xlink:href 的自定义指令
app.directive('ngXlinkHref', function () {
return {
priority: 99,
restrict: 'A',
link: function (scope, element, attr) {
var attrName = 'xlink:href';
attr.$observe('ngXlinkHref', function (value) {
if (!value)
return;
attr.$set(attrName, value);
});
}
};
});
完整演示:http://plnkr.co/edit/cMhGRh
但似乎如果我不手动将xlink:href添加到元素中,svg图像将无法呈现。
任何关于如何最好地处理 xml 命名空间/svg 和 angular 的建议将不胜感激。
【问题讨论】:
-
我没有找到您问题的答案,但感谢您发布 Plunker。我将它用于我自己的角度 SVG 绑定。
标签: html angularjs svg angularjs-directive xml-namespaces