399 Stimmen

Das Hinzufügen von Parametern zur ng-click-Funktion innerhalb von ng-repeat scheint nicht zu funktionieren

Ich habe eine einfache Schleife mit ng-repeat wie diese:

   {{task.name}}
  entfernen

Es gibt eine Funktion im Controller $scope.removeTask(taskID).

Soweit ich weiß, wird Angular zuerst die Ansicht rendern und die interpolierten {{task.id}} mit einer Nummer ersetzen und dann, beim Klickereignis, den ng-click-String auswerten.

In diesem Fall erhält ng-click genau das, was erwartet wird, also: ng-click="removeTask(5)". Allerdings... es passiert nichts.

Natürlich könnte ich einen Code schreiben, um die task.id aus dem $tasks-Array oder sogar aus dem DOM zu erhalten, aber das scheint nicht der Angular-Weg zu sein.

Also, wie kann man dynamischen Inhalt zur ng-click-Direktive innerhalb einer ng-repeat-Schleife hinzufügen?

0voto

Hitesh Sahu Punkte 37527

HTML:

                   ng-click="connectDevice(scannedDevice.id)"
                   altSrc="{{'./assets/img/PlaceHolder/user_place_holder.png'}}" 
                   onerror="this.src = $(this).attr('altSrc')">

Java Script:

   //Globale Variablen
    var  ANGULAR_APP = angular.module('TestApp',[]);

    ANGULAR_APP .controller('TestCtrl',['$scope', function($scope) {

      //Variablen
      $scope.ScanResult = [];

      //Parameter übergeben
      $scope.connectDevice = function(deviceID) {
            alert("Verbindung herstellen: "+deviceID );
        };
     }]);

0voto

ankush Punkte 119

Hier ist die ng-Wiederholung mit der ng-Klick-Funktion und zum Hinzufügen mit dem Schieberegler

var app = angular.module('MyApp', [])
        app.controller('MyController', function ($scope) {
        $scope.employees = [
            { 'id': '001', 'name': 'Alpha', 'joinDate': '17.05.2015', 'age': 37 },
            { 'id': '002', 'name': 'Bravo', 'joinDate': '25.03.2016', 'age': 27 },
            { 'id': '003', 'name': 'Charlie', 'joinDate': '11.09.2015', 'age': 29 },
            { 'id': '004', 'name': 'Delta', 'joinDate': '11.09.2015', 'age': 19 },
            { 'id': '005', 'name': 'Echo', 'joinDate': '09.03.2014', 'age': 32 }
        ]

            //Das wird das DIV standardmäßig verbergen.
                $scope.IsVisible = false;
            $scope.ShowHide = function () {
                //Wenn das DIV sichtbar ist, wird es ausgeblendet und umgekehrt.
                $scope.IsVisible = $scope.IsVisible ? false : true;
            }
        });

 checkbox1

        {{emps.id}}
        {{emps.name}}
        {{emps.age}}

        $('#mixedSlider').multislider({
            duration: 750,
            interval: false
        });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X