ng-clic à l'intérieur du modèle de cellule ne déclenche pas la fonction dans le contrôleur
J'ai créé un plunker ici: http://plnkr.co/edit/zGqouwzxguef13lx48iP?p=preview
Quand je clique dans une cellule de l'interface utilisateur-réseau dans la vue jour rien ne se passe. Ce que j'attend, c'est que la fonction de test est exécuté et une alerte est affichée avec le texte "test" mais ce n'est pas le cas.
Ce qui se passe mal ici?
C'est la cellule html modèle de l'interface utilisateur-réseau 3.0 dernière version:
HTML
<div ng-click="test()" ng-switch="row.entity[row.grid.columns.indexOf(col)].isPeriod">
<div ng-switch-when="true">
<tabset>
<tab>
<tab-heading>
<i class="glyphicon glyphicon-book"></i>
</tab-heading>period id:
{{ row.entity[row.grid.columns.indexOf(col)].id}}
</tab>
<tab select="alertMe()">
<tab-heading>
<i class="glyphicon glyphicon-bell"></i>
</tab-heading>
{{row.entity[row.grid.columns.indexOf(col)].content}}
</tab>
</tabset> <!-- PeriodTemplate -->
</div>
<div ng-switch-when="false">
<div>Hello empty template</div>
</div> <!-- EmptyPeriodTemplate -->
</div>
CONTRÔLEUR:
'use strict';
angular.module('projectplanner').controller('DateplannerDayController', function ($scope, $state) {
var columnHeaderDates = ['col1','col2','col3','col4','col5','col6','col7']
$scope.columns = createColumnHeaders(columnHeaderDates);
var data = [{isPeriod: true, id: 10, rowNumber: 1},{isPeriod: false, id: 11, rowNumber: 2}]
$scope.test = function()
{
alert('test');
};
$scope.gridOptions = {
rowHeight: 200,
data: data,
enableSorting: false,
enableColumnMenu: false,
columnDefs: $scope.columns,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
$scope.gridApi.core.addRowHeaderColumn(
{ name: 'rowHeaderCol',
displayName: '',
width: 100,
cellTemplate: '<div>row header template</div>'
});
}
};
function createColumnHeaders(columnHeaders) {
var columnDefinitions = [];
for (var i = 0; i < columnHeaders.length; i++) {
var column = {
name: columnHeaders[i],
cellTemplate: 'lessonplanner.day.celltemplate.html',
field: i + 'x'
}
columnDefinitions.push(column);
}
return columnDefinitions;
}
});
source d'informationauteur Pascal
Vous devez vous connecter pour publier un commentaire.
Cette page gardé d'apparaître dans mes recherches et j'ai réussi à rater la solution dans les commentaires. Pour résumer, vous avez probablement besoin d'utiliser des externalScopes. Voir Angulaire de l'interface utilisateur-les événements de la grille dans la cellule d'en-tête de pas de tir et http://ui-grid.info/docs/#/tutorial/305_appScope
Si vous utilisez Contrôleur-Comme syntaxe essayez:
C'est parce que l'interface utilisateur-réseau possède son propre contrôleur et il n'est pas informé le contrôleur de l'extérieur.
Pour faciliter, procédez de la manière suivante..
1. D'abord attribuer le contrôleur de l'interface utilisateur-réseau.
Maintenant, une fois que vous affectez le contrôleur de la grille, vous pouvez appeler la fonction comme ceci..
Dans l'interface utilisateur-réseau, la cellule de modèle, parce que de la cellule a son propre champ,