我刚刚开始发现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.renderedColumns
个col
项进行迭代,并且{{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中它说:
rowTemplate
和317_custom_templates tutorial example中没有注入此模块的内容
ui.grid.class:ScrollEvent下还有一个属性> To enable, you must include the 'ui.grid.cellNav' module
,但它的名字不一样,但也许它可能是它的来源。
我想找到sourceColContainer
属性的文档并更好地理解它,并知道它自己的子属性是否存在(除colContainer
之外)或至少是i会知道它的起源并查看它的代码源,如果没有它的文档可能也会有用。
最好的问候。
答案 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的对象,其中包含要呈现的列。 您还可以访问“正文”以外的其他容器:左侧和右侧。 这是因为你使用固定左和/或右,身体是中心容器。