javascript - 将 Angular $modalInstance 置于特定的 div 之上

标签 javascript angularjs

我正在使用 $modalInstance。我希望模式显示在特定的 div 上。我知道我可以使用 window-class,但除此之外,我不确定如何将模式的位置设置在某个 div 之上。

有什么想法吗?

编辑

this.showRetiredModal = function () {
        /*var modalInstance = */$modal.open({
            template: $templateCache.get('states/retire/retiremodal.html'),
            controller: 'RetireModalController',
            size: 1000,
            backdrop: 'static',
            keyboard: false,
            resolve: {
                birthDate: function () {
                    return _this.participantInfo.birthDate;
                },
                homeController: function () {
                    return _this;
                }
            }
        }).rendered.then(function () {
            // Grab target element
            var element = document.querySelector('.accordionIconWidth');
            // Get target position and size
            var rect = element.getBoundingClientRect();
            // Grab modal element
            var modal = document.querySelector('.modal-dialog');

            // Set style 
            modal.style.margin = 0;
            modal.style.width = rect.width + 'px';
            modal.style.top = rect.top + 'px';
            modal.style.left = rect.left + 'px';
        });

    };

最佳答案

如果您想在打开对话框时动态执行此操作,则需要等待模态附加到 DOM。模态实例中有一个名为 rendered 的 promise 。解析后,从 DOM 中获取目标和模态元素,计算目标位置并将其应用于模态元素:

// Initialize
var modalInstance = $uibModal.open({
    templateUrl: 'modal.html',
    controller: 'modal'
// Wait for render
}).rendered.then(function() {
    // Grab target element
    var element = document.querySelector('.well'),
        // Get target position and size
        rect = element.getBoundingClientRect(),
        // Grab modal element
        modal = document.querySelector('.modal-dialog');

    // Set style 
    modal.style.margin = 0;
    modal.style.width = rect.width + 'px';
    modal.style.top = rect.top + 'px';
    modal.style.left = rect.left + 'px';
});            

这是一个关于 Plunker 的工作示例:http://plnkr.co/edit/4vSTKm?p=preview

关于javascript - 将 Angular $modalInstance 置于特定的 div 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048949/

相关文章:

javascript - 如何在现有父指令元素和子指令元素之间动态嵌套指令元素?

javascript - 奇怪的 HTML 行为

javascript原型(prototype)继承覆盖属性

javascript - AngularJS:使服务状态可观察

javascript - 以错误的顺序应用的 CSS 类

javascript - Greasemonkey 1.0 中的 jQuery 与使用 jQuery 的网站发生冲突

javascript - Angular JS 自定义分隔符

javascript - 正确的 JSON 格式

javascript - 避免在每个请求上验证 jwt token

javascript - Node.Js - 在连续命令后退出执行