在 AngularJS 中使用 ng-repeat 渲染 HTML 值时出现问题
Trouble using ng-repeat in AngularJS to render HTML values
我遇到了这篇文章,它或多或少地包含了我想做的事情: AngularJS - 是否可以使用 ng-repeat 来呈现 HTML 值?
截至目前,代码如下所示,正确呈现为文本:
<div ng-repeat="item in items.Items">
{{item}}<br>
</div>
我希望它现在呈现为 HTML,所以从那篇帖子中获取,我让它看起来像这样:
<div ng-repeat="item in items.Items" ng-bind-html-unsafe="item">
<br>
</div>
但是,结果不会呈现任何内容。有谁知道这是为什么?我也尝试将ng-bind-html-unsafe设置为"{{item}}",但没有效果
你应该使用 ng-bind-html,你可以这样做:
$scope.myHTML = $sce.trustAsHtml('<b>some</b> html');
请参阅更新的小提琴。
在您的情况下,首先使用一些函数或将数组传入控制器:
$scope.getHtml = function(v){
return $sce.trustAsHtml(v);
};
将
html
标记为从.js
文件绑定到字符串格式的.html
始终是一种很好的做法,因为安全。
是利用 AngularJS 的依赖注入和 $sce
来实现。人们可以阅读更多关于它的信息,长度在这里。
我使用列表创建了一个演示,因为您只共享了 HTML 而不是 JS,所以我假设了一个并说明了如何使用它通过使用 $sce.trustAsHtml()
信任 HTML 字符串来使用它。
参考演示。
请看下面的代码:
.HTML:
<div ng-app="app" ng-controller="test">
<div ng-repeat="item in items" ng-bind-html="item">
</div>
</div>
.JS:
var app = angular.module('app', []);
app.controller('test', function($scope, $sce) {
$scope.data = [{
"Items": [{
"data": "<p>Item 1</p>"
}, {
"data": "<p>Item 2</p>"
}, {
"data": "<p>Item 3</p>"
}, {
"data": "<p>Item 4</p>"
}]
}];
$scope.items = [];
angular.forEach($scope.data[0].Items, function(v, k) {
$scope.items.push($sce.trustAsHtml(v.data));
});
});
相关文章:
- 使用Handontable在同一列中用纯文本和html对问题进行排序
- 在HTML中调用函数时出现问题
- 在将javascript附加到我的html中时遇到问题
- 使用ajax在html中加载html文件时出现的问题
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 使用HTML和JS的iPhone游戏中的性能问题,以及appMobi
- Html、css和jQuery.我的代码有问题
- jQuery-数据提取问题(html遍历)
- ajax html javascript页面刷新无闪烁问题
- html单选按钮检查问题
- c# mvc nreco HtmlToPdfConverter 问题将 html 文档转换为 pdf
- CSS 溢出的滚动问题:滚动 HTML
- 在我的Javascript和HTML之间的表单提交按钮链接中遇到问题
- 跨域问题:HTML
- Ckeditor出现格式错误的html问题
- 创建/使用简单的美制到公制转换器的问题.(HTML/JavaScript)函数未启动
- 简单的php字符串问题(HTML和javascript)
- 表对齐问题HTML JavaScript
- javascript click()方法的问题/ html
- JavaScript验证问题——HTML表单即使不完整也要提交