如何使用$se.trustAsHtml在trNgGrid中显示html内容
how to show html content in trNgGrid with $sce.trustAsHtml
我有一个使用trNgGrid.js的带有搜索选项的表。我查询Sharepoint列表,其中一列包含html内容,我想显示它。
为此,我在promise中使用$sce.trustAsHtml
,但这不起作用。所以经过一些测试,我注意到在完成$scope.requests.push(item)
之后,我可以做这样的事情:
$scope.requests[x].SubjectText = $sce.trustAsHtml($scope.requests[x].HTMLContent);
这或多或少是有效的,因为SubjectText列不是用来显示html的,所以它所做的是将其显示为纯文本。
另一方面,如果我做这样的事情,什么都不会发生:
$scope.requests[x].HTMLContent = $sce.trustAsHtml(angular.copy($scope.requests[x].HTMLContent));
并且该列没有数据。最奇怪的是,如果我做了完全相同的事情,但没有告诉我把值放在哪个项目上,它就起作用了,所以html内容以完美的方式显示,但所有项目都有相同的值,这是承诺中的最后一个。
$scope.requests.HTMLContent = $sce.trustAsHtml(angular.copy($scope.requests[x].HTMLContent));
我在trNgGrid中做了一个更改,帮助我在有文件名的情况下在div中有一个ng-bind-html
。
另一个选项是创建一个自定义列,您可以在其中使用ng-bind-html
指令:
angular
.module('myApp', ['trNgGrid'])
.controller("MainCtrl", ["$scope", "$sce", function ($scope, $sce) {
$scope.myItems = [
{
name: "Moroni",
age: 50,
htmlContent: $sce.trustAsHtml('<i><b>HTML Content #1</b></i>')
},
{
name: "Tiancum",
age: 43,
htmlContent: $sce.trustAsHtml('<div class="text-danger">HTML Content #2</div>')
},
{
name: "Jacob",
age: 27,
htmlContent: $sce.trustAsHtml('<div class="text-info">HTML Content #3</div>')
},
{
name: "Nephi",
age: 29,
htmlContent: $sce.trustAsHtml('<div class="text-warning">HTML Content #4</div>')
},
{
name: "Enos",
age: 99,
htmlContent: $sce.trustAsHtml('<pre>HTML Content #5</pre>')
}];
}]);
<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.0.3/slate/bootstrap.min.css" rel="stylesheet"/>
<link href="//moonstorm.github.io/trNgGrid/release/trNgGrid.min.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js"></script>
<script src="//moonstorm.github.io/trNgGrid/release/trNgGrid.min.js"></script>
<body ng-app="myApp">
<div ng-controller="MainCtrl">
<table tr-ng-grid items="myItems" fields="['name','age']">
<thead>
<tr>
<th><div></div></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div ng-bind-html="gridItem.htmlContent"></div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
如果您不将HTML与数据分离(我一直建议您这样做),那么您需要fields
属性来阻止网格自动拾取htmlContent
数据成员。
相关文章:
- Brightcove获取/显示HTML中的当前视频标题和描述
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 使用jqLite隐藏和显示html元素
- 如何在不打断标记的情况下突出显示html字符串中的文本
- JS来显示HTML标记
- 如果javascript打开/关闭,则隐藏和显示html代码
- 用javascript显示html表
- 显示HTML代码块
- Regex有助于突出显示html中匹配文本的角度过滤器
- 为什么WebBrowser控件在保存后不能正确显示HTML
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- 如何使用window.showModalDialog()显示HTML内容
- JavaScript if else 语句来显示 html 标签
- 使用 js 函数显示 HTML 表单的结果
- 如何在不点击的情况下突出显示 HTML 中的文本
- 如何隐藏和显示 html 输入文本和段落
- 使用 javascript 解析和显示 HTML 音频当前时间
- 有什么方法可以在HTML页面中显示HTML代码吗
- 在自动完成jqueryUi中显示html
- 单击并用CTRL+C复制值时高亮显示html表格单元格