2012-09-28 9 views
68

文字列または数字を受け入れるが、ng-model変数を受け入れない単純な削除ボタンがあります(正しい用語であるかどうかはわかりません)。生成バインドされた変数を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

ngClickディレクティブは表現を結合し

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

どのように私は、関数を通じてsubmission.idを渡すでしょうか?私はfunction(submission.id){}が私のコントローラーでは機能しないということを理解しています。 –

+1

*明示*:角度値を属性に渡すときに中括弧を使う必要はありません。内部HTMLマークアップでそれらを必要とします。例: Rick

+0

これを行うときに、変数値の代わりに角括弧が機能するようになったのはなぜだろうか。詳細は '答えは本当に助かりました: ''面白いのは、デベロッパーツールウィンドウで適切にレンダリングされているように、間違ったやりかたが見られたことです。 – jaybro

1

ng-clickで波括弧({{}})は、これを試してみてください。 {{ }}を必要とせずに、角コードを直接実行します(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>

関連する問題