Agregar un parámetro a la función ng-click dentro de ng-repeat no parece funcionar

Tengo un bucle simple con ng-repeat como este:

 
  • {{task.name}}

  • Hay una función en el controlador $scope.removeTask(taskID) .

    Por lo que sé, Angular primero renderizará la vista y reemplazará el {{task.id}} interpolated {{task.id}} interpolado con un número, y luego, al hacer clic en el evento, evaluará la cadena ng-click .

    En este caso, ng-click obtiene totalmente lo que se espera, es decir: ng-click="removeTask(5)". Sin embargo … no está haciendo nada.

    Por supuesto, puedo escribir un código para obtener task.id del array $tasks o incluso el DOM, pero esto no parece ser el modo Angular.

    Entonces, ¿cómo se puede agregar contenido dynamic a la directiva ng-click dentro de un ciclo ng-repeat ?

    En lugar de

      

    hacer esto:

      

    Por favor, mira este violín:

    http://jsfiddle.net/JSWorld/Hp4W7/34/

    Una cosa que realmente me colgó fue cuando inspeccioné este html en el navegador, en lugar de verlo expandido a algo como:

      

    Yo vi:

      

    Sin embargo, ¡el último funciona!

    Esto se debe a que se encuentra en el “Mundo Angular”, cuando dentro de ng-click = “” Angular todo listo sabe sobre la tarea. Tal como se encuentra dentro de su modelo. No es necesario utilizar el enlace de datos, como en {{}}.

    Además, si desea pasar el objeto de la tarea en sí, puede hacer lo siguiente:

      

    También vale la pena señalar, para las personas que encuentran esto en sus búsquedas, es esto …

     
    {{ button.label }}
    {{ button.description }}

    Tenga en cuenta el valor de ng-click . El parámetro pasado a goTo() es una cadena de una propiedad del objeto de enlace (el button ), pero no está entre comillas. Parece que AngularJS maneja eso para nosotros. Me cuelgo de eso por unos minutos.

    esto funciona. Gracias. Estoy inyectando html personalizado y comstackrlo usando angular en el controlador.

      var tableContent= '
    Search:
    ' +'
    ' + '
    Customer ID
    ' + '
    {{c.CustomerId}}
    '; $timeout(function () { var linkingFunction = $compile(tableContent); var elem = linkingFunction($scope); // You can then use the DOM element like normal. jQuery(tablePanel).append(elem); console.log("timeout"); },100);

    Las respuestas anteriores son excelentes. Puede ver el siguiente ejemplo de código completo para que pueda saber exactamente cómo usarlo

      var app = angular.module('hyperCrudApp', []); app.controller('usersCtrl', function($scope, $http) { $http.get("https://jsonplaceholder.typicode.com/users").then(function (response) { console.log(response.data) $scope.users = response.data; $scope.setKey = function (userId){ alert(userId) if(localStorage){ localStorage.setItem("userId", userId) } else { alert("No support of localStorage") return } }//function closed }); }); 
      #header{ color: green; font-weight: bold; } 
         HyperCrud            

    Users

    Image - {{user.name}}

    {{user.name}}

    {{user.email}}

    +91 {{user.phone}}

    {{user.address.city}}

    HTML:

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

    Java Script:

      //Global Variables var ANGULAR_APP = angular.module('TestApp',[]); ANGULAR_APP .controller('TestCtrl',['$scope', function($scope) { //Variables $scope.ScanResult = []; //Pass Parameter $scope.connectDevice = function(deviceID) { alert("Connecting : "+deviceID ); }; }]); 

    Aquí está la repetición ng con la función de clic ng y para agregar con control deslizante

        
    checkbox1

    {{emps.id}}

    {{emps.name}}

    {{emps.age}}