在AngularJS的HTML模板中使用&符号是否安全?

8

我听说在Angular模板中使用&符号是不好的做法,因为'&'在HTML中是保留字符,但我经常在Angular示例中看到它。

明确一下,写下面这样是否安全:

<div ng-show="bool1 && bool2"></div>

在Angular模板中使用吗?

我不关心它是否有效(它是有效的),但是否存在任何可能导致问题或者实际上不鼓励使用的边缘情况。


我更感兴趣的是如何在HTML中使用,因为除了HTML字符实体外,它不允许使用'&'。 - Jacob Sievers
1
Thymeleaf在使用它们时会出现SAXParseException异常。因此,如果您同时使用Thymeleaf,则不应使用它们。 - cst1992
3个回答

5

2

我在我的Angular HTML模板中也使用了"&"符号,从未遇到过问题,但最好的方法是在类似于您的测试应用程序中测试其效果,以确定您是否可以安全地使用它们。


1
我更想知道最佳实践是什么。例如,https://dev59.com/D3A75IYBdhLWcg3wDUq2 建议在HTML中永远不要使用它。 - Jacob Sievers
1
最佳实践始终是最安全的,为了安全起见,我建议(就像您链接的问题一样)转义您的“&”符号。 - FullyHumanProgrammer
我发现直接转义比担心是否需要转义要容易得多。例如:在像<a href="http://domain.com?ordf=170&ordm=186">这样的链接中,你需要转义和号以避免它被解释为&ordm吗?但是如果你总是在任何地方都写上&amp;,那么这个问题就不会出现了。 - Mr Lister

-1

没问题,我经常使用它。这里有一个演示:

 <div data-ng-show="bool1 && bool2">bool1 && bool2</div>
 <div data-ng-show="bool1 && !bool2">bool1 && !bool2</div>
 <div data-ng-show="!bool1 && bool2">!bool1 && bool2</div>
 <div data-ng-show="!bool1 && !bool2">!bool1 && !bool2</div>

http://jsfiddle.net/8drnp4ue/


你知道这与https://dev59.com/D3A75IYBdhLWcg3wDUq2有什么关系吗?谢谢! - Jacob Sievers
那么,怎么办呢?这被存储为常规的HTML。 - Jacob Sievers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接