Javascript AngularJS不在ng click和ng show中解释XSL
我有一个结合了XSL、XML和AngularJS的web应用程序。有一个树结构,当单击一个叶时,它应该在div标记中显示一个字段,其中包含与特定叶相关的内容。下面是代码 树:Javascript AngularJS不在ng click和ng show中解释XSL,javascript,xml,angularjs,xslt,Javascript,Xml,Angularjs,Xslt,我有一个结合了XSL、XML和AngularJS的web应用程序。有一个树结构,当单击一个叶时,它应该在div标记中显示一个字段,其中包含与特定叶相关的内容。下面是代码 树: <li>Root <xsl:for-each select="//method[method_phase='Root']"> <ul> <li><a ng-click="method.toShow='<xs
<li>Root
<xsl:for-each select="//method[method_phase='Root']">
<ul>
<li><a ng-click="method.toShow='<xsl:value-of select="method_name"/>Field'"><xsl:value-of select="method_name"/></a></li>
</ul>
</xsl:for-each>
</li>
根目录
以及单击叶时应显示的字段
<div ng-show="method.toShow=='<xsl:value-of select="method_name"/>Field'">
div with content related to the leaf
</div>
包含与叶相关内容的div
这样做的问题是,在ng click and ng show中,它不会被解释为的xsl:value。错误如下:
The value of attribute "ng-click" associated with an element type "a" must not contain the '<' character
与元素类型“a”关联的属性“ng click”的值不得包含“当前尝试设置ng click属性的语法无效
<a ng-click="method.toShow='<xsl:value-of select="method_name"/>Field'">
<xsl:value-of select="method_name"/>
</a>
第二种方法是使用“属性值模板”
这里的大括号{}
表示要计算的表达式,而不是字面上的输出。这可能是最好的方法,因为它不太冗长,更接近HTML的实际输出方式。哪个版本?1.2附带了$sce
,我相信这意味着安全的内容逃逸。
<a>
<xsl:attribute name="ng-click">method.toShow='<xsl:value-of select="method_name"/>Field'</xsl:attribute>
<xsl:value-of select="method_name"/>
</a>
<a ng-click="method.toShow='{method_name}Field'">
<xsl:value-of select="method_name"/>
</a>