Je suis en train de déclencher une fonction personnalisée à l'intérieur de mon modèle cellulaire columnDef comme suit:ng-clic ne se déclenche pas dans le modèle columnDef ui-grid
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');
}
}
Cette définition de la colonne contient les données dans mon réseau. Bss cellulaire est un élément angulaire sur mesure que je fait qui ressemble à ceci:
//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>
Comment puis-je obtenir que cliquer pour avoir lieu pour qu'il fonctionne à la fonction « cellClicked » à l'intérieur de mon GridComponent, qui serait alors me permettre affecter la grille comme je le voudrais.
this.cellTemplates = ['uiGridTreeCellTemplate.html', 'uiGridTreeColumnHeaderTemplate.html'];
this.gridOptions = {
appScopeProvider: this
}
Merci pour les commentaires, je mis à jour mon post initial pour vous montrer ce que j'ai actuellement appScopeProvider dans mes gridOptions. Cela me permet d'utiliser "grid.AppScope.somefunction()" dans mon this.templates pour appeler une fonction dans mon GridComponent. Mais appeler grid.AppScope ne fonctionne pas sur bssCell car ce n'est pas un template passé à la grille mais un composant angulaire séparé. Comment puis-je mettre à jour appScopeProvider pour fonctionner avec cela? Merci encore – bschmitty