我在 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 中工作 https://stackoverflow.com/questions/19267979/ng-click-not-working-from-dynamically-generated-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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)