2015-10-16 176 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。

相關問題