onclick事件調用$ scope函數我是新的JS和AngularJs。在我的控制,我有以下代碼:AngularJs - 從<img>標記
angular.forEach(resData, function(file) {
$('.shelfgallery').append('<div class="responsive"><div class="gallery">' + '<img id="img' + fotoId + '" src="' + file + '" alt="Shelf Image" width="100" height="100" onclick="openImg(' + fotoId++ + ')"></img></div></div>'); });
,你可以看到,在事件「的onClick」 onclick="openImg(' + fotoId++ + ')"
,我稱之爲openImg功能:
function openImg(id) {
var url = $('#img' + id).attr("src");};
每一件事工作正常,但我需要在$scope
中定義JS函數「openImg」作爲函數,因爲那樣我可以做很多事情,比如httppost。我如何以我的功能是$ scope的一部分的方式更改我的代碼,並且可以通過標記<img>
來調用它?
修訂 我曾嘗試使用已經由Pengyy解釋的方式,這裏是我的代碼:
angular.forEach(resData, function(file) {
var element = angular.element($('.shelfgallery'));
element.html('<div class="responsive"><div class="gallery">' +'<img id="img' + fotoId + '" src="' + file +
'" alt="Shelf Image" width="100" height="100" ng-click="openImg('
+ fotoId++ + ')"></img>');
$compile(element)($scope)
});
順便說一句。你的方法太「jQueryish」了。我建議在模板中使用ng-repeat,而不是使用jquery將每個項目發送到DOM。 –