单元格标题中的 Angular ui-grid 事件未触发 [英] Angular ui-grid events in cell header not firing
问题描述
我在 ui-grid 的 columDefs 中使用了 headerCellTemplate(不是 ng-grid,而是新的重写).在 html 中,我有一个复选框.本质上,我试图在所有复选框的列的标题中添加一个复选框,以便我可以选中全部/无.单元格使用复选框呈现良好.问题是标题中复选框中的 ng-change 永远不会触发该事件.此外,ng-model 值永远不会改变.查看代码,使用了一个名为 uiGridHeaderCell 的指令,所以我必须假设它正在吞噬我的事件以及在它自己的范围内,因此它永远不会在我的范围内设置变量.
有什么办法解决这个问题吗?我遇到的每个例子都没有人试图从头文件中调用他们自己的方法(即调用指令范围之外的东西).
在 ui-grid 中有一个名为 externalScopes
的功能,它可能对您有用.教程在这里
这是新的headerCellTemplate
:
<div class="ui-grid-vertical-bar"> </div><div class="ui-grid-cell-contents" col-index="renderIndex"><input type="checkbox" ng-click="$event.stopPropagation();getExternalScopes().showMe()">{{ col.displayName CUSTOM_FILTERS }}<span ui-grid-visible="col.sort.direction" ng-class="{ 'ui-grid-icon-up-dir': col.sort.direction == asc, 'ui-grid-icon-down-dir': col.sort.direction == desc, 'ui-grid-icon-blank': !col.sort.direction }"> </span><div class="ui-grid-column-menu-button" ng-if="grid.options.enableColumnMenus && !col.isRowHeader && col.colDef.enableColumnMenu !== false" class=ui-grid-column-menu-button"ng-click="toggleMenu($event)"><i class="ui-grid-icon-angle-down"> </i>
<div ng-if="filterable" class="ui-grid-filter-container" ng-repeat="colFilter in col.filters"><input type="text" class="ui-grid-filter-input" ng-model="colFilter.term" ng-click="$event.stopPropagation()" ng-attr-placeholder="{{colFilter.placeholder || ''}}"/><div class="ui-grid-filter-button" ng-click="colFilter.term = null"><i class="ui-grid-icon-cancel right" ng-show="!!colFilter.term"> </i><!-- 使用 !!因为 angular 将 'f' 解释为 false -->