使用'&&'运算符在百里香中进行角度验证

时间:2018-06-25 12:53:54

标签: angularjs thymeleaf

我对百里香为何不接受少数案件一无所知。

我的html页面中有此验证:

<input id="republish" type="submit" class="btn btn-success"
       ng-click="doRepublish()" value="Republish" disabled="disabled"
       ng-disabled="!republishInput && republishInput.length < 7"/>

只要有'&&',thleleaf就会抛出此异常:

  

org.xml.sax.SAXParseException:实体名称必须紧随其后   实体引用中的“&”。

我已经在github post中签入了以下内容:

  

Thymeleaf 2.1使用XML解析器来处理您的模板(v3.0使用   HTML格式,这种情况就不会发生)。因此,XML解析器不会   知道您<script>的内容应按以下方式处理   CDATA(即被忽略),发现您的&&确实是无效的HTML   (它认为这是转义代码)。

     

解决方案是用<![CDATA[...]]>包装JavaScript代码,   喜欢:

<script>
// <![CDATA[
   ...your code here
// ]]>
</script>
     

这样,您将使CDATA部分显式并显示XML解析器   会明白,它不必担心里面有什么   那块。

但这似乎是针对xml的。我如何与我的ng-disabled合作?

1 个答案:

答案 0 :(得分:1)

我不知道百里香,但是也许您可以尝试用HTML编码特殊值:

<input id="republish" type="submit" class="btn btn-success"
       ng-click="doRepublish()" value="Republish" disabled="disabled"
       ng-disabled="!republishInput &amp;&amp; republishInput.length &lt; 7"/>

尽管我建议将其替换为对控制器中定义的函数的调用,例如:

<input id="republish" type="submit" class="btn btn-success"
       ng-click="doRepublish()" value="Republish" disabled="disabled"
       ng-disabled="!canRepublish(7)"/>