如何将绑定变量传递给ng-click函数?

时间:2012-09-28 21:55:37

标签: javascript angularjs

我有一个简单的删除按钮,它接受一个字符串或数字但不接受ng-model变量(不确定这是否是正确的术语)。

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

生成:

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

然而,点击时没有任何反应。如果我对变量进行硬编码,那么它就可以了。我假设我不是以“Angular”方式做事,但我不确定那是什么方式:)

这是我的控制器代码:

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

2 个答案:

答案 0 :(得分:134)

您不需要在{{}}中使用大括号(ng-click),试试这个:

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

答案 1 :(得分:1)

ngClick 指令绑定表达式。它直接执行Angular代码(如ngIfngChange等)而无需{{ }}

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

    $scope.delete = function(id) {
        alert(id + " deleted!");
    }
});
&#13;
<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>
&#13;
&#13;
&#13;