2015-05-26 66 views
3

我有角這個功能,我添加了一個新的幻燈片NG點擊。NG單擊不工作在動態創建的內容

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 not working from dynamically generated HTML),我該如何解決這個問題在我的情況,因爲它是一個功能的控制器內,而不是一個指令?

回答

19

你需要添加$這裏編譯服務,將結合角指令像NG單擊控制器scope.Something這樣的:

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()); 
+0

謝謝你。綁定不會那麼好,因爲它需要獨特的類/ ID。 $ compile服務如何工作? –

+1

var divTemplate ='..你的div模板'; var temp = $ compile(divTemplate)($ scope);然後將其追加到HTML」 angular.element(的document.getElementById( '富'))追加(TEMP); – UserNeD

+0

在這裏看看:https://docs.angularjs.org/api/ng/service/ $編譯 – UserNeD