Zellvorlage im ng-Gitter
-
26-12-2019 - |
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.
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