我在Angular中具有此功能,在其中添加了一个带有ng-click的新幻灯片。
var addSlide = function($scope, slideIndex, $event) { slideIndex++; var slider = angular.element('.slick-slider'); var currentSlide = slider.slick('slickCurrentSlide'); slider.slick('slickAdd', '<div class="slide" ng-click="addPhoto(); $event.stopPropagation();"><input type="file" class="camera-trigger" accept="image/*"><img class="photo-img" src="" /></div>'); };
不幸的是,动态创建的ng-click事件不起作用(ng-click在动态生成的HTML中不起作),由于它是控制器内部的函数而不是指令,因此如何解决此问题?
您需要在此处添加$ compile服务,该服务会将ng-click之类的角度指令绑定到您的控制器作用域。
var divTemplate = '..your div template'; var temp = $compile(divTemplate)($scope);
然后将其附加到HTML:
angular.element(document.getElementById('foo')).append(temp);
您还可以将事件绑定到div,如下所示:
var div = angular.element("divID"); div.bind('click', $scope.addPhoto());