2012-09-28 94 views
68

我有一個簡單的刪除按鈕,它將接受一個字符串或數字,但不會接受一個ng模型變量(不知道這是否是正確的術語)。如何將綁定變量傳遞給ng-click函數?

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

產生:

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

然而,當我點擊沒有任何反應。如果我硬編碼一個變量,那麼它工作得很好。我想我只是不做事的「角」的方式,但我不知道這樣是什麼:)

這裏是我的控制器代碼:

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

回答

131

你並不需要使用在ng-click大括號({{}}),嘗試:

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

我將如何再穿過一個功能submission.id?從我理解的函數(submission.id){}不會在我的控制器中工作,因爲函數不能在除句點之外 –

+1

*澄清* ::在角度值傳遞給屬性時,不需要使用大括號,但你仍然需要他們在內部的HTML標記。例如: Rick

+0

我想知道爲什麼在傳遞括號的時候爲了代替變量值而使用括號:''有趣的是,錯誤的方式看起來像是在開發人員工具窗口中正確呈現。 – jaybro

1

ngClick指令結合的表達。它直接執行Angular代碼(如ngIf,ngChange等),而不需要{{ }}

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>