Javascript Angular.js和Raphael.js/Snap.svg-将指令事件处理程序绑定到Raphael.js生成的svg内容
我正在Angular.js指令中使用Snap.svg来生成svg内容,并且无可否认,目前我正在考虑完全放弃Snap.svg,只编写常规的ol'XML样式的svg。我想,在我放弃Snap.svg之前,我至少应该问一下,是否可以使用Angular将事件处理程序绑定到HTML Snap.svg生成的文件。到目前为止,我还没有找到明确的方法将快照生成的HTML与Angular指令中的元素参数相关联。此外,我看不到任何方法可以直接将指令添加到Snap.svg生成的标记中。试着让两人配合得很好感觉。哈奇 这里有我遗漏的东西吗?正如您在下面看到的,我显式地将元素变量设置为Snap.svg的输出,我很确定这是不正确的,但是,在第一次尝试允许元素变量映射到默认情况下变量关联的实际HTML元素之后,我想我应该尝试一些不同的方法Javascript Angular.js和Raphael.js/Snap.svg-将指令事件处理程序绑定到Raphael.js生成的svg内容,javascript,angularjs,svg,raphael,snap.svg,Javascript,Angularjs,Svg,Raphael,Snap.svg,我正在Angular.js指令中使用Snap.svg来生成svg内容,并且无可否认,目前我正在考虑完全放弃Snap.svg,只编写常规的ol'XML样式的svg。我想,在我放弃Snap.svg之前,我至少应该问一下,是否可以使用Angular将事件处理程序绑定到HTML Snap.svg生成的文件。到目前为止,我还没有找到明确的方法将快照生成的HTML与Angular指令中的元素参数相关联。此外,我看不到任何方法可以直接将指令添加到Snap.svg生成的标记中。试着让两人配合得很好感觉。哈奇 这
BoothManager.directive("booth", ["$document", "BoothShapeConstants", function ($document, BoothShapeConstants) {
return {
restrict: "A",
scope: {
booth: "=info"
},
link: function (scope, element, attrs) {
var s = Snap("#svg");
var bigCircle = s.circle (20, 20, BoothShapeConstants.RADIUS).attr({
fill: BoothShapeConstants.COLOR_FILL,
stroke: BoothShapeConstants.COLOR_BORDER,
strokeWidth: BoothShapeConstants.STROKE_WIDTH
});
bigCircle.drag(moveElement);
function moveElement (dx, dy, posx, posy) {
this.attr({
cx: posx,
cy: posy
});
};
console.log(element);
element.on("mousedown", function (event) {
console.log(scope.booth.id);
});
}
}
}]);
@Paul的可能重复:这个问题建议使用指令绑定数据;在这里,他们已经在使用指令和绑定数据;他们问的不是如何绑定数据,而是如何绑定事件。因此,这不是重复。