Angular Ui-grid无法更改列displayName

时间:2014-10-23 15:06:13

标签: angular-ui-grid

我有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。

2 个答案:

答案 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);

它对我有用