【发布时间】:2016-07-20 03:33:27
【问题描述】:
我已将自定义指令绑定到我的 svg 组的 transform 属性:
自定义指令
app.directive('ngScale', function () {
return function (scope, element, attrs) {
scope.$watch(attrs.ngScale, function (value) {
element.attr('transform', "scale(" + value + ")");
}, true);
};
});
SVG 组
<g ng-scale="{{vm.scale}}">...</g>
控制器
vm.doStuff = function () {
...
vm.scale *= 1.1;
}
调用 doStuff 后的 DOM
<g ng-scale="1.1" transform="scale(1)">...</g>
对doStuff 的调用更改了比例值,我可以看到DOM 中的ng-scale 属性发生了变化,但是实际的transform 属性仅在第一次运行时填充,并且不再更新。为什么会这样?
【问题讨论】:
-
为什么不直接使用ng-attr prefix?
标签: javascript angularjs svg data-binding angularjs-directive