我开始使用chartjs,可以在代码看起来像这样的地方指定选项:
legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\"background-color:<%=datasets[i].strokeColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>"
问题是<%%>被解释为ASP.NET代码。如何避免冲突?
您可以将其放在字符串中,有点像将其转义。
close标签似乎无效,因此您可以连接两个字符串,并使用常量使其更易于阅读:
<%
const string OPEN = "<%=";
const string CLOSE = "%" + ">";
%>
legendTemplate : "<ul class=\"<%=OPEN%>name.toLowerCase()<%=CLOSE%>-legend...
或者用javascript代替,但这会使在源HTML中更难看到:
var OPEN = "<" + "%" + "=";
var CLOSE = "%" + ">";
legendTemplate: "<ul class=\"" + OPEN + "name.toLowerCase()" + CLOSE + "-legend... "
另一种选择是对一个字符使用不同的表示形式,也许对百分比使用。您可以使用\045
另一种表示形式(编辑:请勿使用\045
,使用\x25
或\u0025
代替-看起来八进制已逐步淘汰javascript):
legendTemplate = "<ul class=\"<\x25=name.toLowerCase()\x25>-legend... "
或者,可能是更好的答案,如果您在此特定的javascript中未使用任何服务器代码,只需将其移至.js文件即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句