Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js和Raphael.js/Snap.svg-将指令事件处理程序绑定到Raphael.js生成的svg内容_Javascript_Angularjs_Svg_Raphael_Snap.svg - Fatal编程技术网

Javascript Angular.js和Raphael.js/Snap.svg-将指令事件处理程序绑定到Raphael.js生成的svg内容

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生成的标记中。试着让两人配合得很好感觉。哈奇 这

我正在Angular.js指令中使用Snap.svg来生成svg内容,并且无可否认,目前我正在考虑完全放弃Snap.svg,只编写常规的ol'XML样式的svg。我想,在我放弃Snap.svg之前,我至少应该问一下,是否可以使用Angular将事件处理程序绑定到HTML Snap.svg生成的文件。到目前为止,我还没有找到明确的方法将快照生成的HTML与Angular指令中的元素参数相关联。此外,我看不到任何方法可以直接将指令添加到Snap.svg生成的标记中。试着让两人配合得很好感觉。哈奇

这里有我遗漏的东西吗?正如您在下面看到的,我显式地将元素变量设置为Snap.svg的输出,我很确定这是不正确的,但是,在第一次尝试允许元素变量映射到默认情况下变量关联的实际HTML元素之后,我想我应该尝试一些不同的方法

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的可能重复:这个问题建议使用指令绑定数据;在这里,他们已经在使用指令和绑定数据;他们问的不是如何绑定数据,而是如何绑定事件。因此,这不是重复。