如何在javascript中调用单击功能,如ng click on circle(SVG元素)

如何在javascript中调用单击功能,如ng click on circle(SVG元素),javascript,angularjs,Javascript,Angularjs,我在JS文件中有一些htmltext,它再次返回html页面。htmltext包含一些圆形svg元素,当我们从API中检索时,这些元素会正确显示。点击圆圈,我想在同一个js文件中调用一个js函数。我正在尝试使用ng click,但它不起作用 htmlText += '<circle ng-click="getUrl()" cx="9.5" cy="9.5" stroke-width="2" stroke="'+statsObj[s].color+'" fill-opacity="0"

我在JS文件中有一些htmltext,它再次返回html页面。htmltext包含一些圆形svg元素,当我们从API中检索时,这些元素会正确显示。点击圆圈,我想在同一个js文件中调用一个js函数。我正在尝试使用ng click,但它不起作用

  htmlText += '<circle ng-click="getUrl()" cx="9.5" cy="9.5" stroke-width="2" stroke="'+statsObj[s].color+'" fill-opacity="0" r="8.00" title="" style="opacity: 1;" data-original-title="'+statsObj[s].state+'" ng-click="getUrl()"></circle>';
htmlText+='';
是语法有问题还是我们可以用其他方式实现??
提前感谢。

这是因为如果您需要使用ng click等角度指令,则需要编译html字符串。您可以通过创建一个指令来实现这一点

我已经接受了这里的指令 并创建了一个plunkr:

供你参考

    app.directive('compileTemplate', function($compile, $parse) {
  return {
    restrict: 'A',
    link: function(scope, element, attr) {
      var parsed = $parse(attr.ngBindHtml);

      //Recompile if the template changes
      scope.$watch(
        function() { 
          return (parsed(scope) || '').toString(); 
        }, 
        function() {
            $compile(element, null, -9999)(scope);
        }
      );
    }
  };
});
您还需要使用$sce.trustAsHtml在主页中嵌入html


希望这有帮助

对于JS文件,您是指角度JS控制器吗?你能做一个plunkr吗?是的,angular js controllerThanks,它在工作,但我面临的一个新问题是,当我通过函数传递参数时,整数值的到来,但在字符串的情况下,我得到了未定义的问题。看这里。。ng click=“getUrl('+statsObj[s].count+,'+statsObj[s].dag_id+')”。从我试图传递给参数的getUrl中,count可以正常工作,但dag_id不能正常工作。语法有问题吗?不需要在html字符串“getUrl(statsObj[s].count,statsObj[s].dag_id”中输入“+”就可以了。更新的plunkr:在这种情况下,我得到了错误SyntaxError:无效或意外的令牌…….htmlText+='“不知道为什么,你必须创建一个plunkr并复制错误,我已经用你的svg圆圈更新了plunkr,它可以工作。请参阅更新的plunkr: