我有ui-grid。 我的对象是可能包含框或样本的框。 Box1 = {'姓名':' box1','儿童':[{'姓名':' box2'} ,{'名称':' box3'}]} Box2 = {'姓名':' box2','儿童':[],'样本[{'姓名':& #39; 1'}]}
一开始我展示了Box1。用户可以单击Box1或Box2,然后打开一个链接,显示该框包含的内容。
nameLinkTemplate是链接模板(" getExternalScopes()。followlink) $ scope.gridOptions.columnDefs =({field:' Name',displayName:' Name',cellTemplate:nameLinkTemplate});
如果框中包含样本,我将列更改为仅显示没有链接的名称 $ scope.gridOptions.columnDefs =({field:' Name',displayName:' Name2',}); 结果我看不到链接(这就是我想要的), 但Ui-Grig列标题不显示?为什么呢?
我还尝试通过以下方式重置Ui-grid:$ scope.gridOptions = [];并再次定义网格。我仍然无法正确更改列displayName。
答案 0 :(得分:1)
我刚刚在模板上添加条件并且有效:
cellContainerNameLinkTemplate:
<div class="ui-grid-cell-contents" ng-if="row.entity.IsSample" ng-class="col.colIndex()">
<div class="gridnolinkpointer">
{{grid.getCellValue(row, col)}}
</div>
</div>
<div ng-if="!row.entity.IsSample">
<div class="nav nav-pills" ng-class="col.colIndex()" ng-click="getExternalScopes().followlink({event:$event,row:row})">
<a class="gridlinkpointer">{{grid.getCellValue(row, col)}}</a>
</div>
</div>
cell
答案 1 :(得分:1)
更改名称后尝试呼叫:
$ scope.gridApi.core.notifyDataChange( uiGridConstants.dataChange.COLUMN);
它对我有用