2013-02-25 17 views
7

Ho il seguente codice HTML:angolare: ng clic con un parametro che non funziona

<i style="cursor:pointer" ng-click="addName()" class="icon-plus"></i> 
<i style="cursor:pointer" ng-click="delName({{$index}})" class="icon-remove"></i> 

e le seguenti funzioni del mio controller $scope:

$scope.addName = function() { 
    $scope.names.push($scope.newName); 
    $scope.newName = ''; 
}; 
$scope.delName = function(i) { 
    $scope.names.splice(i, 1); 
}; 

Il addName() funziona bene, ma la delName() non viene mai chiamato. È impossibile associare un ng-clik a una funzione con un argomento?

risposta

14

L'errore era in html, il $ index ng-repeat non dovrebbe essere valutata a priori: il

Questa è la valida HTML:

<i style="cursor:pointer" ng-click="delName($index)" class="icon-remove"></i> 
+1

Sto riscontrando un problema simile, updateProductState ({{product_id}}), non attiva la funzione, ma se codice un valore statico funzionerebbe. qualche idea? grazie – user1883793

+5

hai provato 'updateProductState (product_id)'? Non è necessario il '{{}}' in una direttiva ng –

+0

Che funzioni! Grazie – user1883793

0

Il codice mi sembra soddisfacente, puoi isolare il problema in un jsFiddle?

MODIFICA: Rimossa la risposta errata relativa alla giunzione che non si modificava alla matrice.

+0

Pianura w rong: 'splice'does modifica l'array originale e restituisce gli elementi RIMOSSI. Il mio problema è che la funzione non viene mai chiamata comunque. –

+0

Ah, hai ragione, sono stanco, credo. Ho appena risposto ad un'altra domanda su Array.filter che restituisce un nuovo array. Scusate. –

+0

nessun problema :) :) –

0

Si può fare come segue

<i ng-click="delName($index)" class="icon-remove"></i> 

In css

[ng-click], 
[data-ng-click], 
[x-ng-click] { 
    cursor: pointer; 
} 
Problemi correlati