我一直在尝试使用HTML实体,以避免角度作出有约束力的,当明文命中{{}}如何显示与角
所以我发现,浏览器将其转换为纯弯曲的大括号反正双花括号。这里是简单的例子。正如您在DOM检查器中所看到的,HTML实体代码已转换为简单的弯曲大括号。它在某处指定了吗?
https://codepen.io/anon/pen/OxEeqg
<body>
{{1+2}}
</body>
UPD:Chrome和FF的行为在这种情况下类似。
我一直在尝试使用HTML实体,以避免角度作出有约束力的,当明文命中{{}}如何显示与角
所以我发现,浏览器将其转换为纯弯曲的大括号反正双花括号。这里是简单的例子。正如您在DOM检查器中所看到的,HTML实体代码已转换为简单的弯曲大括号。它在某处指定了吗?
https://codepen.io/anon/pen/OxEeqg
<body>
{{1+2}}
</body>
UPD:Chrome和FF的行为在这种情况下类似。
使用ng-non-bindable指令的包装元素:
<span ng-non-bindable>{{1+2}}</span>
如果你使用它的容器元素上,你也可以忽略属性:
<div ng-non-bindable>
<input value="{{example}}">
</div>
中。不幸的是,相同的元素具有属性,我确实需要绑定并且它的下降具有它们太。但最重要的是它实际上是XSS,我不想通过列入黑名单来阻止XSS。无论我是否忘记添加'ng-non-bindable',我都希望解决方案能够在任何地方工作。所以我加入了保存到数据库的钩子,并认为它工作正常,直到我发现用HTML实体替换弯曲的大括号不起作用,因为浏览器将它们替换回来。 –
这是预期的行为。如果你想直接显示你的代码,你必须把'&'变成一个实体:'&#123; &#123; 1 + 2 &#125; &#125;' – tobiv
不,我说的不是显示。 DOM中的HTML本身已被转换。我希望它被显示为弯曲的大括号,但不能被Angular表达式解析器识别。因为我不得不在前两个括号之间插入ZWSP,但我仍然好奇为什么'{'被转换为'{'*在HTML源代码* –