72

我有一个简单的删除按钮,可以接受字符串或数字,但不接受 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 );
}
4

2 回答 2

140

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

<button class="btn btn-danger" ng-click="delete(submission.id)">delete</button>
于 2012-09-28T22:34:44.697 回答
1

ngClick指令绑定一个表达式。它直接执行 Angular 代码(如ngIfngChange等),而不需要{{ }}.

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>

于 2017-04-24T13:22:00.347 回答