Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular JS-如何在控制器中清理HTML?_Javascript_Angularjs - Fatal编程技术网

Javascript Angular JS-如何在控制器中清理HTML?

Javascript Angular JS-如何在控制器中清理HTML?,javascript,angularjs,Javascript,Angularjs,我正在尝试清理控制器中的HTML,因为我正在尝试用文章的标题动态更新document.title。(我知道对于搜索引擎优化的目的,这是不推荐的,但我需要在这里使用它) 对于这个例子,我刚刚使用了一个随机HTML实体。我已经尝试了来自的parseAsHtml方法,但没有成功。我尝试了以下方法: document.title = $sce.parseAsHtml($scope.prevTitle) 但是没有运气。文档表明它需要在函数中使用。有没有关于我将如何实现这一点的建议 上面的控制台日志(co

我正在尝试清理控制器中的HTML,因为我正在尝试用文章的标题动态更新document.title。(我知道对于搜索引擎优化的目的,这是不推荐的,但我需要在这里使用它)

对于这个例子,我刚刚使用了一个随机HTML实体。我已经尝试了来自的parseAsHtml方法,但没有成功。我尝试了以下方法:

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))