0
Wie Ereignis Listener-Funktion in angularjs Direktive generieren?Wie Ereignis Listener-Funktion in angularjs Direktive generieren?
Für diese so etwas wie:
Richtlinie:
app.directive('myDirective',() => {
return {
scope: {
myDict: '=',
},
templateUrl: 'directives/my-directive',
};
});
HTML:
<!-- my-directive.html -->
<li ng-repeat="(key, value) in myDict">
<!-- Will not work -->
<a onclick="function_written_in_frontend({{key}})">{{value}}</a>
</li>
Verwenden Sie es:
<my-directive myDict="{'a': 1, 'b': 2, 'c': 3}"></my-directive>
Was ich hoffe ist, dass es erzeugen könnten:
<li>
<a onclick="function_written_in_frontend('a')">1</a>
<a onclick="function_written_in_frontend('b')">2</a>
<a onclick="function_written_in_frontend('c')">3</a>
</li>
Aber ich kann nicht. Und ng-click
könnte hier nicht die Lösung sein.
Danke im Voraus.
Update:
Wenn ich meine Richtlinie wie folgt aktualisiert:
app.directive('myDirective',() => {
return {
scope: {
myDict: '=',
},
controller: function ($scope, $element) {
$scope.function_written_in_frontend = function(mykey) {
console.log(mykey);
}
},
templateUrl: 'directives/my-directive',
};
});
Und es gibt mir:
{{key}}
{{key}}
{{key}}
{{key}}
"Aber ich kann nicht"? Was bedeutet das? Auch 'ng-click' ist die bevorzugte Methode zum Hinzufügen von onclick Event-Handlern in AngularJS. –
* "ng-click ist hier vielleicht nicht die Lösung" * ... warum nicht? Was bedeutet 'function_written_in_frontend'? Alles clientseitig inklusive eckig ist das Frontend. Die Verwendung von Inline 'onclick' ist keine bevorzugte Methode, um Ereignisbehandlung in nativen Skripten durchzuführen – charlietfl
Kann ich eine Funktion aufrufen, die in einem anderen Skript geschrieben ist, wie' '? – Adam