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/...
InformationsquelleAutor Saurabh | 2015-04-12
Schreibe einen Kommentar