如何在svg元素上以编程方式ng绑定属性
How to programmatically ng-bind a property on an svg element?
我想将背景颜色绑定到svg元素。我引用了一个外部svg文件myfile.svg,在这个文件中有一个id为"mycircle"的圆圈。
所以我的html看起来像:
<div ng-controller="MyCtrl">
<embed src="myfile.svg" id="mySvg"/>
</div>
我有一个控制器,看起来像:
function MyCtrl($scope) {
$scope.myfill = 'yellow';
}
现在我想以编程方式设置绑定,这就是我所做的:
var mySvg = document.getElementById("mySvg");
mySvg.addEventListener("load", function() {
var svg = mySvg.getSVGDocument();
var mycircle = svg.getElementById("mycircle");
//this works:
//mycircle.setAttribute("fill", "yellow");
$(mycircle).attr('ng-bind','myfill');
});
但是,这并不能设置填充。我想我可能需要使用有角度的"编译"或其他东西来实现这一点(?)有人能告诉我如何做到这一点吗?
是的,您需要编译。应绑定为exp并根据作用域进行编译。下面的片段应该有效。
var mySvg = document.getElementById("mySvg");
mySvg.addEventListener("load", function() {
var svg = mySvg.getSVGDocument();
var mycircle = angular.element(svg.getElementById("mycircle"));
mycircle.attr('fill', '{{myfill}}');
$compile(mycircle)($scope);
});
相关文章:
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 以编程方式选择文本Mobile Safari
- Thunderbird,如何以编程方式选择第一个选项卡
- 以编程方式获取无线接入点列表
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 通过javascript以编程方式将文件插入HTML输入
- 如何以非编程方式国际化HTML文本
- Y组合器如何以编程方式计算不动点
- 如何以编程方式添加到可变嵌套对象中
- 在视图中渲染多个按钮以编程方式进行本机反应
- 为什么我在以编程方式打开窗口时遇到问题
- 以编程方式添加的复选框的值
- 以编程方式将fabric-js-canvas的图像替换为hq图像,并重新计算其他对象的坐标和大小
- 可以't以编程方式关闭jQuery移动弹出窗口中的可折叠部分
- 以编程方式调用javascript函数
- 如何以编程方式查找javascript语法错误的位置
- 以编程方式将特定的JavaScript添加到Qualtrics中的特定问题中
- 当以编程方式更改输入值时,不会执行更改时事件
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- 以编程方式打开<选择>选取器