Frage

Ich benutze cell template eigentum von ng-grid.Ich definiere eine Funktion in der Richtlinie.Innerhalb derselben Richtlinie definiere ich meine grid-options.Hier ist der Code:

data: 'mydata',
columnDefs: [

{field:'Timeout', displayName:'Delay', cellTemplate: '<a href="" 
ng-click= "Report(Alert,Key,1000,1,1);"><div class=\"ngCellText\">{{row.getProperty(col.field)}}</div></a>'}   
        ]

und Funktion Report ist auch in derselben Direktive definiert.

ng-click funktioniert immer, wenn darauf geklickt wird.Die Funktion wird aufgerufen, aber unabhängig von der Eingabevariablen, die ich übergebe (Alert und Key) wird nicht an die Funktion übergeben, während die restlichen drei Parameter 1000,1,1 werden bestanden.Alert ist die fest codierte Zeichenfolge, die ich übergeben möchte.Key ist einer der Arrays von ganzzahligen Werten in 'mydata'.Ich habe mit überprüft alert für diese 2 spezifischen Werte in Funktion und es wird UNDEFINIERT angezeigt.

Bitte helfen Sie beim korrekten Aufruf der Funktion.Danke im Voraus.

War es hilfreich?

Lösung

Willst du so etwas:

  $scope.Report=function(msg,key,v1,v2,v3){
    //use v1, v2, v3 for whatever you like
    alert(msg+':'+key);
  };

  $scope.gridOptions = {
    data: 'myData',
    columnDefs: [
      {
        field: 'name',
        displayName: 'Delay',
        cellTemplate: '<a href="" ng-click= "Report(\'Alert\',row.entity.age,1000,1,1);"><div class=\"ngCellText\">{{row.getProperty(col.field)}}</div></a>'
      }, {
        field: 'age'
      }
    ]
  };

Beachten Sie, dass die fest codierte Zeichenfolge (msg) in maskierte Anführungszeichen gesetzt werden muss.Ich habe das Alter als Beispiel für einen Schlüssel verwendet.Da es sich in diesem Beispiel um einen numerischen Wert handelt, benötigen Sie die Anführungszeichen nicht.

Hier ist ein Plunker

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top