【发布时间】:2015-04-12 03:30:44
【问题描述】:
我有一个带有 AngularJs 指令的 HTML 标记,例如:
<div line-chart></div>
它调用一个生成 SVG 对象及其相关子元素的指令。用于创建子元素的函数:
function drawDataPoints(params){
function drawDataPointCircles() {
var dataPointAttributes = {
'class': 'data-point negative'
};
params.svg.selectAll('circle data-point')
.enter()
.append('circle')
.attr('label-visible', '');
}
drawDataPointCircles();
}
这个指令的输出是:
<svg class="chart">
<g>
<circle class="data-point negative" label-visible=""></circle>
</g>
</svg>
你可能注意到有一个label-visible 应该调用下面的指令:
angular.module('myApp')
.directive('labelVisible', function () {
debugger;
return {
restrict: 'A',
link: function(scope, element){
}
};
});
但不幸的是,labelVisible 指令已执行,但 link 函数从未被调用。有谁知道生成svg元素时如何调用labelVisible?
【问题讨论】:
-
在将其附加到 DOM 之前,您需要使用 $compile 服务对其进行编译。