【发布时间】:2014-09-28 13:33:16
【问题描述】:
我在动态大小的元素中放置了一个角度指令。该指令本身由一个 SVG 组成,它是根据元素大小计算的。我正在尝试根据容器的大小使 SVG 自动调整大小和重绘。
我最初尝试过这样的事情:
my-directive.js
angular
.module('myModule')
.directive('myDirective', function () {
return {
templateUri: 'path/to/my-directive-template.html',
...
};
});
my-directive-template.html
<svg style="width: 100%; height: 100%; max-width: 100%; max-height: 100%">
...
</svg>
注意该 SVG 元素上的 style 属性。这在 Chrome 中正确调整大小,但在 Firefox 中无法正常工作。另外,我仍然没有重新计算 SVG 内容的钩子。
我还尝试在link 函数中将onresize 处理程序添加到element,但是,JQLite 仅在主窗口上支持onresize。我不能使用window.onresize,因为我的窗口大小没有改变。
我尝试在这里使用答案:AngularJS - bind to directive resize,但它们也没有给出所需的结果。
简而言之,这就是我想要做的:
- 当父元素调整大小时,调整指令内的 SVG 元素的大小。
- 发生这种情况时,通过调用一些处理函数来重新计算 SVG 内容。
我宁愿不在项目中此时添加 JQuery 依赖项。
【问题讨论】:
标签: javascript css angularjs svg cross-browser