2015-10-16 175 views
1

我传递给ui-grid的字段是html片段。像这样:如何避免在Angularjs中显示UI网格单元格中的html代码

<span style="color:BLACK; cursor: pointer; text-decoration: underline;" onclick="openForm(154,68962)">PENDING</span> 

和UI-网格表示在细胞内的HTML代码。我想显示的不是HTML,而是使用点击事件工作的范围。我试过这个分配到UI电网领域{{ COL_FIELD }}这样的,但它没有工作:

{ displayName: 'Form Status', field: 'FormStatus', headerCellClass: 'center', width: '80', enableColumnMenu: false, cellClass: 'text-center', cellTooltip: true, cellTemplate: {{COL_FIELD}} }, 

回答

2

你可以尝试cellTemplate在UI电网 例如代码,

var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + '<a href="{{row.getProperty(col.field)}}">Visible text</a>' + '</div>'; 

定义你的控制器内var linkCellTemplate$scope.gridoptions指出像

$scope.gridOptions = { 
columnDefs: [{ 
       'field':'link', 
       'cellTemplate':linkCellTemplate 
      }] 
}; 
1

该字段包含文本,即使这段文字是一个有效的HTML代码,它仍将文本。你试图得到的是将文本转换为html元素。 Angular支持使用ngBindHtml。它确实对html进行了卫生处理,并可能会删除它的某些部分。如果这是一个问题,请参阅this great article以了解如何绕过它。

我认为这会改变你的配置有点:

.... cellTemplate: <div ng-bind-html="{{COL_FIELD}}"></div> 

如果你有这一切显示属性,您可能会发现,你的处理器(?是它的范围定义)不会被触发/找到。如果是这种情况,您可能需要使用ui-grid的appScope。

相关问题