Я просто столкнулся с этой проблемой.
Ваш код хорошо, see this fiddle
Проблема, как один из замечаний, упомянутых, является то, что угловое не закончил рендеринг элемента.
Это можно увидеть, запустив функцию jQuery прямо над вашей функцией щелчка. Вы увидите, что длина 0.
console.log($(".additionalImgs"));
Итак, теперь вы должны найти способ отсрочить связывание вашего события щелчка, пока вы не знаете, что элемент на самом деле есть.
К сожалению, это область, в которой угловой не справляется очень хорошо. Вы можете узнать больше об этом в this feature request
Первое, что я всегда стараюсь использовать $ timeout. Он не ждет до конца цикла дайджеста огня его код обратного вызова, даже если вы оставите время пустого
$timeout(function(){
$(".additionalImgs").click(function() {
$(this).fadeOut();
});
});
Этот блог имеет красивое решение, создавая директиву, что пожары обратного вызова, когда последние нг-повтор элемент был визуализирован. http://www.nodewiz.biz/angular-js-final-callback-after-ng-repeat/
Простым решением этой проблемы является использование ng-click
на вашем ng-repeat
элемента.
<li ng-repeat="img in phone.images" ng-click="somefunction();" class="additionalImgs">
У вас возникли ошибки? – j08691
Нет ошибок, при вставке кода в консоль, он работает, когда это делается из редактора, это не –
В этом примере работает https://jsfiddle.net/aesL4jjh/ – Tuco