在$scope变量中转义HTML的快速方法
quick way to escape html in $scope variable
我有一个初始值
$scope.abc = 'abc'
,也许在点击事件下,我想将值转换为
$scope.abc = '<h1>abc</h1>'
我知道有像ng-bind这样的东西来转义html,但是有没有更快的方法来做到这一点?
不,没有快速转义HTML的方法。事实上,您所看到的许多困难都是故意的和安全的,因为包含任意用户提供的HTML的能力是一个矢量,允许跨站点脚本编写、恶意的整个页面接管和许多其他麻烦。Angular通过让安全地插入任意文本变得非常容易,而插入任意标记变得非常困难,从而解决了这个问题。(当然,你所描述的HTML可能在你的脚本中是硬编码的,但Angular对它们的处理没有必要有任何区别。)
我也不同意改变标记是正确的方法:<h1>
与任意<p>
, <div>
或<span>
有非常不同的语义含义,所以如果你想调整字符串在页面中显示的方式,你应该用ng-class
或ng-if
来做。
// JS
$scope.callOutAbc = true;
// CSS
.called-out { font-size: 36pt; font-weight: bold; /* ... */ }
// HTML
<header ng-class="{ 'called-out': callOutAbc }">{{ abc }}</header>
或
<div ng-if="!callOutAbc">{{ abc }}</div>
<h1 ng-if="callOutAbc">{{ abc }}</h1>
相关文章:
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 用HTML在不同屏幕上显示和隐藏内容的方法
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- 有更好的方法吗?(递归解析HTML unicode实体)
- 如何在JQuery中的.html()方法中包含fadeneffect
- jQuery.html()方法语法
- jQuery/Ajax-试图通过Ajax创建POST方法并获得对HTML的响应
- 需要一种根据请求禁用HTML框架的方法
- 特定循环(html元素)方法的优点和缺点
- 在angularjs中将html项插入到现有模板HTML中有什么奇怪的方法
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- javascript在html元素方法运行setTimeout后返回此消息
- 主干.js/下划线.js错误:没有方法“html”
- jQuery承诺不适用于未定义的方法html
- 指令和自定义方法/html