如何在javascript中调用单击功能,如ng click on circle(SVG元素)
我在JS文件中有一些htmltext,它再次返回html页面。htmltext包含一些圆形svg元素,当我们从API中检索时,这些元素会正确显示。点击圆圈,我想在同一个js文件中调用一个js函数。我正在尝试使用ng click,但它不起作用如何在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"
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: