小编典典

ng-click在动态创建的内容中不起作用

angularjs

我在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中不起作),由于它是控制器内部的函数而不是指令,因此如何解决此问题?


阅读 249

收藏
2020-07-04

共1个答案

小编典典

您需要在此处添加$ 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());
2020-07-04