什么是colContainer属性以及我可以在哪里找到它的文档

时间:2016-12-27 13:05:50

标签: angular-ui-grid

我刚刚开始发现ui-grid过去几天。 ui.grid.class:GridOptions的文档显示了如何使用rowTemplate属性的示例:

rowTemplate

' UI栅/ UI格列'默认情况下。提供时,此设置使用自定义行模板。可以设置为模板文件的名称:

$scope.gridOptions.rowTemplate = 'row_template.html';

内联html

$scope.gridOptions.rowTemplate = '<div style="background-color: aquamarine" ng-click="grid.appScope.fnOne(row)" ng-repeat="col in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ui-grid-cell></div>';

正如您在rowTemplate html代码中看到的那样,ng-repeat会对colContainer.renderedColumnscol项进行迭代,并且{{1} }}选项使用track by

317_custom_templates tutorial example中也使用了相同的模板。

我在文档中查找col.colDef.name属性的来源,我只能在ui.grid.cellNav.object:CellNav下找到一个名称相同的属性而没有任何详细信息(我已经不知道了)知道它是否与上面colContainer示例和317_custom_templates tutorial example中使用的colContainer属性完全相同,因为在202 Cell Navigation tutorial中它说: rowTemplate317_custom_templates tutorial example中没有注入此模块的内容 ui.grid.class:ScrollEvent下还有一个属性> To enable, you must include the 'ui.grid.cellNav' module,但它的名字不一样,但也许它可能是它的来源。

我想找到sourceColContainer属性的文档并更好地理解它,并知道它自己的子属性是否存在(除colContainer之外)或至少是i会知道它的起源并查看它的代码源,如果没有它的文档可能也会有用。

最好的问候。

1 个答案:

答案 0 :(得分:1)

我发现了 /src/js/core/directives/ui-grid-render-container.js:47

 var colContainer = $scope.colContainer = grid.renderContainers[$scope.colContainerName];

因此colContainer实际上是一个渲染容器,您可以通过执行$scope.gridApi.grid.renderContainers["nameOfColContainer"]

来访问外部指令和模板

要知道nameOfColContainer,您必须在此处查看模板

/src/templates/ui-grid/ui-grid.html:33 ):

 <div ui-grid-render-container
      container-id="'body'"
      col-container-name="'body'"
      row-container-name="'body'"
      bind-scroll-horizontal="true"
      bind-scroll-vertical="true"
      enable-horizontal-scrollbar="grid.options.enableHorizontalScrollbar"
      enable-vertical-scrollbar="grid.options.enableVerticalScrollbar">
    </div>

所以它肯定是身体。在renderContainer中,您将拥有一个名为renderedColumns的对象,其中包含要呈现的列。 您还可以访问“正文”以外的其他容器:左侧和右侧。 这是因为你使用固定左和/或右,身体是中心容器。