AngularJsコントローラで動的に生成されたHTMLにイベントをバインドしようとしていますが、できません。次のコードスニペットが見つかりました動的に生成されたHTMLにバインドされたイベントは自動的に呼び出されます。
var div = angular.element("del-" + input.name);
div.bind('onclick', $scope.DeleteImage());
しかしすぐにDeleteImage()
関数が呼び出されました。 ImageuploadListから画像を削除するために、deleteImageアイコンに機能を追加したいと思います。任意のアイデア、それを行う方法? 、そのは実際に関数を呼び出す; "div.bind( 'onclickの'、$ scope.DeleteImage())" のコードを見てみると
function readImageURL(input) {
if (input) {
var reader = new FileReader();
reader.onload = function (e) {
$('#pageImageList').append('<span class="upload-image recent-images"> <a id="del-' + input.name + '" href="javascript:void(0);" class="glyphicon glyphicon-trash" ></a><img src="' + e.target.result + '" id="' + input.name + '" width="100%" height="100%"></span>')
var div = angular.element("del-" + input.name);
div.bind('onclick', $scope.DeleteImage());
$scope.imageUpload.push({
ImageUrl: e.target.result,
ImageName: input.name
});
};
reader.readAsDataURL(input);
}
}
が、少し修正が必要になります。
またはインライン関数を使用する:あなたはすなわち、関数(ない())を呼び出していない、関数ポインタを渡すに必要以下のようになります。 div.bind( 'click'、function(){$ scope.DeleteImage();}); 'onclick'の代わりに をクリックするだけです。 – Sachin
あなたのanglejsコントローラで何が利用できるのか分からず、あなたがバインドしていたイベント名を保持しました。あなたがそれを整理してうれしいです。 –