angular 如何转义绑定值?

How does angular escape bound values?

我们来看这个简单的 angular 片段:

<input type="text" ng-model="name" />
<p>Hello {{name}}</p>

如果我输入文本 <script>document.write("Hello World!");</script> 它看起来没有执行但按原样显示。但是,如果查看生成的 HTML,我会看到没有任何转义的脚本标记。

我希望看到 angular 括号作为 HTML 转义字符。那么angular如何确保这段代码不被执行呢?

(参见 Plunker http://plnkr.co/DeUCP74RZSGE2ypLqyRY

它实际上是 html 对其进行编码,这就是它不是 运行 的原因。如果您使用 chrome 开发工具,它会将它们显示为常规尖括号,只是为了便于阅读。

如果您右键单击该值并单击 "Edit as HTML",您将看到 html 编码的内容。