Ho creato un plunker qui:ng-clic all'interno del modello delle cellule non si innesca funzione nel controllo
Quando clicco in una cella della ui-griglia nella vista giorno e poi non succede nulla. Quello che mi aspettavo è che la funzione test è eseguita e un avviso è mostrato con il testo 'test', ma non è così.
Cosa sta succedendo qui?
Quello è il modello di cellulare html della ui-grid 3.0 ultima release:
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>
CONTROLLER:
'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;
}
});
utilizzare ExternalScopes. Vedere la mia risposta qui: http: //stackoverflow.com/questions/26621598/angular-ui-grid-events-in-cell-header-not-firing/26628361#26628361 – mainguy
@mainguy Cosa c'entra con ExternalScopes? Non c'è un ambito esterno. L'esempio di ng-click sul lato tut da ui-grid sta facendo la stessa cosa, proprio come me, senza un ambito esterno. Hm ... è strano che potrei giurare di aver visto questo ng-click in una cellaTemplate che lavora su un plunker, ma ui-grid dice: "UI-Grid usa l'ambito isolato, quindi non c'è accesso alle variabili del tuo scope applicazione da un modello di riga o cella. " OK, allora ho bisogno di un ambito esterno !!! Grazie compagno! – Pascal
Al momento le versioni, i tutorial e i manuali di interfaccia utente sono un casino sanguinoso. Penso anche che abbia funzionato senza ambiti esterni poco tempo fa. Spero che questo finisca presto in beta. Btw: Impressionante Plunker che hai costruito lì! – mainguy