一尘不染

AngularJS Fancybox弹出窗口

angularjs

我已经开始了angularjs项目,我想实现fancybox。

为此,我在解决方案中包含了jQuery和fancybox插件。我试图在下面的fancybox窗口中显示的代码中打开模板。

视图

<a href="" ng-click="openPage('popups/add.html')">ADD</a>

控制者

app.controller('MainController',
    function MainController($scope) {
        $scope.user = "Hey Welcome";

        $scope.open = function(template_path){
            $.fancybox({"href":template_path})
        }
    }
)

还有 popup / add.html

<div class="pop-contnr">
    <h2>ADD</h2>
    <table>
        <thead>
            <tr>
                <th align=center>{{user}}</th>
            </tr>
        </thead>
    </table>
</div>

Fancybox成功打开了一个包含模板的窗口,但是该{{user}}表达式尚未求值。谁能帮忙吗?


阅读 270

收藏
2020-07-04

共1个答案

一尘不染

我已经为fancybox创建了指令

app.directive('fancybox',function($compile, $timeout){
    return {
        link: function($scope, element, attrs) {
            element.fancybox({
                hideOnOverlayClick:false,
                hideOnContentClick:false,
                enableEscapeButton:false,
                showNavArrows:false,
                onComplete: function(){
                    $timeout(function(){
                        $compile($("#fancybox-content"))($scope);
                        $scope.$apply();
                        $.fancybox.resize();
                    })
                }
            });
        }
    }
});
2020-07-04