2012-09-28 12 views
68

Mam prosty przycisk usuwania, który akceptuje ciąg lub liczbę, ale nie akceptuje zmiennej modelu ng (nie jestem pewien, czy jest to poprawna terminologia).Jak przekazać powiązaną zmienną do funkcji ng-click?

<button class="btn btn-danger" ng-click="delete('{{submission.id}}')">delete</button> 

który generuje:

<button class="btn btn-danger" ng-click="delete('503a9742d6df30dd77000001')">delete</button> 

Jednak nic się nie dzieje po kliknięciu. Jeśli ciężko koduję zmienną, to działa dobrze. Przypuszczam, że jestem po prostu nie robi rzeczy z „kątowa” sposób, ale nie jestem pewien, co to jest droga :)

Oto mój kod kontrolera:

$scope.delete = function (id) { 
    alert('delete ' + id); 
} 

Odpowiedz

131

Nie trzeba używać kręcone wsporniki ({{}}) w ng-click, spróbuj tego:

<button class="btn btn-danger" ng-click="delete(submission.id)">delete</button> 
+2

jak by następnie przekazać submission.id dzięki funkcji? Z tego co rozumiem funkcja (submission.id) {} ​​nie działałaby w moim kontrolerze, ponieważ funkcja nie może z wyjątkiem okresu –

+1

* Wyjaśnienie * :: Nie trzeba używać nawiasów klamrowych podczas przekazywania wartości kątowych do atrybutów, ale nadal będziesz ich potrzebować w wewnętrznym znaczniku HTML. Przykład: Rick

+0

Zastanawiam się, dlaczego podczas wykonywania tej czynności przekazywał nawiasy do funkcji zamiast wartości zmiennej: ' 'Twoja odpowiedź naprawdę pomogła:' ' Zabawne jest to, zły sposób wyglądał tak, jakby był poprawnie renderowany w oknie narzędzi programistycznych. – jaybro

1

dyrektywa ngClick wiąże wyraz. Wykonuje kod Angular bezpośrednio (jako ngIf, ngChange, itp.) Bez potrzeby {{ }}.

angular.module('app', []).controller('MyCtrl', function($scope) { 
 
    $scope.submission = { id: 100 }; 
 

 
    $scope.delete = function(id) { 
 
     alert(id + " deleted!"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="MyCtrl"> 
 
    <button ng-click="delete(submission.id)">Delete</button> 
 
</div>

Powiązane problemy