0
にトリガされません、私は次のように私のcolumnDefセルテンプレートの内部でカスタム関数をトリガーしようとしています:NG-クリックすると、UI-グリッドcolumnDefテンプレート
export class GridComponent {
constructor() {}
this.gridOptions = {
// grid options defined here
columnDef.cellTemplate = '<bss-cell cellval="{{row.entity[col.name]}}"></bss-cell>';
}
private cellClicked() {
// need to get the click event here but can't
console.log('got here');
}
}
この列の定義は、私のグリッド内のデータを保持しています。私はその後、私を許すことになる、それは私のGridComponentの内側に「cellClicked」機能に実行されるように場所を取るためにクリックして取得できますか
//BSS CELL CONTROLLER CODE FOR THE COLUMN DEF CELL TEMPLATE
import * as angular from 'angular';
import '../../../../modules/bss/bss.component';
export class TreeCellComponent {
constructor() {
}
private cellClicked() {
// click event does come here if I call $ctrl.cellClicked() from my template but this isn't connected to the grid
}
}
angular.module('app.modules.uigridtemplates.bss-cell', ['app.modules.bss'])
.component('bssCell', {
bindings: {
cellval: '@'
},
controller: TreeCellComponent,
template: require('./bss-cell.html')
});
// BSS CELL DIRECTIVE TEMPLATE
<div ng-click="grid.AppScope.cellClicked()" align="right" class="ui-grid-cell-contents-data-grid" title="
{{$ctrl.cellval}}">
<span>{{$ctrl.cellval}}</span>
</div>
:BSSセルは次のようになり、私が作ったカスタム角度成分であります私が望むようにグリッドに影響を与える。あなたのgridOptions
インサイド
this.cellTemplates = ['uiGridTreeCellTemplate.html', 'uiGridTreeColumnHeaderTemplate.html'];
this.gridOptions = {
appScopeProvider: this
}
おかげで、私は現在、私のgridOptions内appScopeProviderのために持っているものをお見せするために私の最初の記事を更新しました。これにより、私のthis.templatesで "grid.AppScope.somefunction()"を使用して、GridComponentの関数を呼び出すことができます。しかし、グリッドに渡されたテンプレートではなく別の角度成分であるので、grid.AppScopeを呼び出すことはbssCellでは機能しません。このためにappScopeProviderをどのように更新できますか?再度、感謝します – bschmitty