Angularjs - ng-switch是否有内容加载事件?

sch*_*sch 4 javascript jquery web angularjs

我有一个具有不同内容的ng-switch,其中一个是Gallery,我必须在切换ng-switch-when = gallery内容准备好之后将JQuery事件设置为所有图像,但不幸运,因为它正在触发事件之前内容已加载.

画廊是第三个ng-switch-when所以我不能用ng-init设置事件.

那么,ng-switch是否有内容加载的事件或指令?

<a href="" ng-click="menuSelection='gallery';loadLibraryGallery();">GALER&Iacute;A</a>
Run Code Online (Sandbox Code Playgroud)

调节器

$scope.loadLibraryGallery = function(){
//I have to set this event to childrens after ng-switch-when=gallery is loaded
        $('.popup-gallery').magnificPopup();

    };
Run Code Online (Sandbox Code Playgroud)

任何的想法.求求你了,谢谢你.

Pat*_*ski 14

你可以在github上查看ngSwitch指令的 它从不调用任何$ broadcast或$ emit函数所以不,它没有这样的事件.

您可以尝试创建自己的指令,这非常简单.插入html代码后,该指令将被链接.

让我们说这是你的代码:

HTML:

<ANY ng-switch="expression">
    <ANY ng-switch-when="matchValue1" data-gallery>...</ANY>
    <ANY ng-switch-when="matchValue2">...</ANY>
    <ANY ng-switch-default>...</ANY>
</ANY>
Run Code Online (Sandbox Code Playgroud)

JS:

angular.module('app').directive('gallery', function(){
     return function ($scope, $element, attrs) {
         $element.find('.popup-gallery').magnificPopup(); 
     }
});
Run Code Online (Sandbox Code Playgroud)

请记住,您永远不应该修改DOM或调用从控制器修改DOM的代码.这是指令工作.