2016-10-23 8 views
0

У меня есть угловая сетка с первой строкой столбца, которая должна отображаться как привязка или метка на основе условия javascript для этого значения ячейки не начинается с символа «M». Если значение ячейки столбца 1 начинается с символа «M», столбец shpuld является меткой, иначе он должен быть hyeprlink. Я верю, что мне нужно использовать два разных шаблона ячейки, но не уверен, как вызывать их в событии строки dibid для uigrid. Ниже приведен код.Сотовые шаблоны на основе значения ячейки

Шаблоны для анкера и этикетки:

var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + 
       ' <a class="text-blue-color text-underline" href="' + getURL() + '/ClaimDetail/Index?TagNumber={{row.entity.TagNumber}}&from=linkcomfort&Style=' + Style + '" target="_blank";">{{row.entity.TagNumber}}</a>' + 
       '</div>'; 
var labelCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + 
       ' <label>{{row.entity.TagNumber}}</label>' + 
       '</div>'; 

Ниже сетка

 $scope.ComfortPlanGrid = { 
     enableGridMenu: true, 
     exporterMenuCsv: true, 
     exporterMenuPdf: false, 
     gridMenuShowHideColumns: true, 
     enableRowSelection: false, 
     enableColumnMenus: false, 
     enableFiltering: false, 
     enablePaging: false   

    }; 
    $scope.ComfortPlanGrid.columnDefs = config.headers.comfortPlansHeadersGrid; 

Ниже сетки заголовков

var headers = { 
    comfortPlansHeadersGrid: [ 
     { field: 'TagNumber', width: 130, displayName: 'Claim Tag Nbr', cellTemplate: linkCellTemplate }, 
     { field: 'CustomerNumber', width: 200, displayName: 'Customer/Dealer' }, 
     { field: 'Status', width: 80, cellTooltip: true }, 
     { field: 'StatusDate', width: 175, displayName: 'Status Date' }, 
     { field: 'Description', displayName: 'Description', width: 270, cellTemplate: claimDetailTemplate }, 
     { field: 'ContractNumber', width: 200, displayName: 'Contract Number', headerTooltip: 'Contract Number' }, 
     { field: 'ServiceDate', width: 175, displayName: 'Service Date', headerTooltip: 'Service Date' } 
    ]}; 

Любая помощь о том, как достичь этого ценится.

+0

Am возможность получения идеальной валидации, используя ниже шаблон клетки, но я хотел бы назвать некоторые другие Javascript функции для проверки также внутри celltemplate. Любой идеи, как вызвать функцию javascript тоже в ng-if, оцениваются. – sam

+0

Обновленный шаблон шаблона: var linkCellTemplate = '

' + '' + '
' + '
'; – sam

ответ

0

Попробуйте следующий код:

Добавить в CellTemplate в COLDEF на соответствующей колонке

cellTemplate: DisplayConditionalTemplate(value) 


function DisplayConditionalTemplate(value){ 
var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' +' <a class="text-blue-color text-underline" href="' + getURL() + '/ClaimDetail/Index?TagNumber={{row.entity.TagNumber}}&from=linkcomfort&Style=' + Style + '" target="_blank";">{{row.entity.TagNumber}}</a>' +     '</div>'; 
var labelCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">'+' <label>{{row.entity.TagNumber}}</label>' +     '</div>'; 

if(value.charAt(0) === 'M') 
    return labelCellTemplate; 
else 
    return linkCellTemplate; 
}