Javascript Angular JS-如何在控制器中清理HTML?
我正在尝试清理控制器中的HTML,因为我正在尝试用文章的标题动态更新document.title。(我知道对于搜索引擎优化的目的,这是不推荐的,但我需要在这里使用它) 对于这个例子,我刚刚使用了一个随机HTML实体。我已经尝试了来自的parseAsHtml方法,但没有成功。我尝试了以下方法:Javascript Angular JS-如何在控制器中清理HTML?,javascript,angularjs,Javascript,Angularjs,我正在尝试清理控制器中的HTML,因为我正在尝试用文章的标题动态更新document.title。(我知道对于搜索引擎优化的目的,这是不推荐的,但我需要在这里使用它) 对于这个例子,我刚刚使用了一个随机HTML实体。我已经尝试了来自的parseAsHtml方法,但没有成功。我尝试了以下方法: document.title = $sce.parseAsHtml($scope.prevTitle) 但是没有运气。文档表明它需要在函数中使用。有没有关于我将如何实现这一点的建议 上面的控制台日志(co
document.title = $sce.parseAsHtml($scope.prevTitle)
但是没有运气。文档表明它需要在函数中使用。有没有关于我将如何实现这一点的建议
上面的控制台日志(console.log($sce.parseAsHtml($scope.prevTitle)))将返回:
function (b,c){return e.getTrusted(a,d(b,c))}
改用$sanitise和trustAsHtml 首先,在模块中注入“ngSanitize” 现在在控制器中,只需添加
$scope.prevTitle = "dynamic title gets pulled in here &"
document.title = $sce.trustAsHtml($scope.prevTitle)
如果您想清理返回的html,我认为这将与使用服务一样简单:
$sanitize
可以像@acg指出的那样使用。或者,您可以直接将其与ng bind html
指令一起使用,在呈现输出之前,它会自动清理输出变量
上面这一点在中不是很清楚,但其中有一个相当广泛的示例,您可以在pluncker中使用它
请记住,
ngSanitize
是一个外部模块,您需要显式加载angular sanitize.js
或将其包含在您的js缩微中。我认为这里的问题是您无法将HTML放入文档。title
,您需要感谢@RGraham,我将研究这个选项:)谢谢你的回答。不幸的是,这完全阻止了标题的更新。Console给我$sanitize未定义,即使我已将其定义为dependency@LT86您是否包含angular sanitize.js
文件@acg,为什么您需要在消毒之前解析ashtml呢?谢谢,但这似乎正好相反,或者根本没有效果?我刚才在我的模块中注入了ngSanitize。要使ngSanitize
正常工作,您不需要$sce.trustAsHtml
。相反,这允许显示非转义HTML字符串。
$scope.prevTitle = "dynamic title gets pulled in here &"
document.title = $sce.trustAsHtml($scope.prevTitle)
document.title = $sanitize($sce.parseAsHtml($scope.prevTitle))