ng-click funktioniert nicht von ui-grid checkbox cellTemplate
Ich suchte eine Menge, um dieses problem, aber nicht jede Lösung, die tatsächlich funktioniert out zu erfüllen meine Bedürfnisse.
Problem: ich wollte, um die Zeile auszuwählen Entität wird beim anklicken der checkbox mit einem columnDef als [{name: 'field01', displayName: '', field: 'field01', cellTemplate: "<input type='checkbox' ng-model='row.entity.field01' ng-click='grid.appScope.myhello()' />"}
].
Baue ich diese columnDef dynamisch basierend auf einem anderen JSON [Update funktionierenden Code]
$scope.columnDef = function(){
var column = [{name: 'field01', displayName: '', field: 'field01', cellTemplate: "<input type='checkbox' ng-model='row.entity.field01' ng-click='grid.appScope.myhello(\"row.entity.field01\")' />"}], coltype = [];
angular.forEach($scope.columns, function(value, index){
coltype = [];
switch(value.type){
case "Number": coltype.push({type: "number"});
break;
case "String": break;
case "Boolean": coltype.push({editableCellTemplate: "ui-grid/dropdownEditor", cellFilter: "mapBool", editDropdownValueLabel: "bool", editDropdownOptionsArray: [{ id: 1, bool: 'Yes' },{ id: 2, bool: 'No' }] });
break;
case "Date": coltype.push({type: 'date', cellFilter: 'date:"MM/dd/yyyy"'});
break;
}
column.push(angular.extend({name: value.name, displayName: value.name, enableCellEdit: (value.edit.indexOf("No") != -1) ? false : true}, coltype[0]));
});
return column;
};
$scope.gridOptions.data = $scope.datagrid;
$scope.gridOptions.columnDefs = $scope.columnDef();
$scope.myhello = function(value){
console.log("It works!!! :-) " + value);
};
Den obigen code aktualisiert das datagrid JSON-der field01 aber rufen Sie nicht die ng-click Funktion. Ich referenzierte zwei Plunkr mit externen-Bereich im ui-grid - Plunkr und ein anderes mit der Definition einer Methode in gridoptions und nennen es lokal Plunkr (In diesem plunker die ng-click wird immer angerufen, aber wenn ich habe versucht, überprüfen den Wert innerhalb der Funktion editUser es war nicht wie erwartet funktioniert).
- Was bedeutet das HTML-Aussehen, das mit dieser? Verwenden Sie
ng-bind-html
wie im ersten Plunkr? - hi brettvd, ich bin nicht die Aktualisierung, alles auf HTML-Seite, auch wenn Sie der ng-bind-html-script-tag den code arbeiten und aktualisieren Sie die JSON auf der Seite. Meine Sorge ist, beim klicken der checkbox wird die ng-click ausgelöst werden soll, so dass ich erfassen kann die Zeile Unternehmen, das bereits geklickt wurde.
- UI-Grid-team hat sich verändert und die getExternalScope() variable raster.appScope. ui-grid.info/docs/#/tutorial/305_appScope. Nach der Verwendung der appScope mein code funktioniert wie ein Charme.
- check this: stackoverflow.com/questions/26621598/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie appScope finden http://ui-grid.info/docs/#/tutorial/305_appScope.
Brauchst du auch eine halbwegs aktuelle version von ui-grid, wie die appScope-Funktion geändert, um rc16 oder rc18.