Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度指令需要非父指令控制器_Javascript_Html_Angularjs_Css_Angularjs Directive - Fatal编程技术网

Javascript 角度指令需要非父指令控制器

Javascript 角度指令需要非父指令控制器,javascript,html,angularjs,css,angularjs-directive,Javascript,Html,Angularjs,Css,Angularjs Directive,我写了一个模块。 目前,我正在将datePicker弹出窗口附加到主指令元素,并要求其控制器像api一样使用它: angular.module('ADM-dateTimePicker', []) .directive('admDtp', [function() { return { require: ['ngModel', 'admDtp'], link: function() {}, control

我写了一个模块。
目前,我正在将datePicker弹出窗口附加到主指令元素,并要求其控制器像api一样使用它:

angular.module('ADM-dateTimePicker', [])
    .directive('admDtp', [function() {
        return {
            require: ['ngModel', 'admDtp'],
            link: function() {},
            controller: [function() {}]
        }
    }])
    .directive('admDtpCalendar', [function() {
        return {
            require: '^^admDtp',
            link: [function() {}]
        }
    }])
如果在某些带有隐藏溢出的对话框中使用
adm dtp
,我的日期选择器也会隐藏,有时会出现z索引问题。
我想我有两个选择:

  • 使弹出位置固定
    这将解决这个问题,但我认为粘在屏幕上,不移动滚动可能会烦人的用户
  • 附加到文档正文
    唯一的问题是我不能要求
    ^^admDtp
    !因为
    admDtp
    不再是popup的父级
有没有解决这个问题的办法


我可以在文档正文中添加弹出窗口,但如何要求非父指令控制器使用其api?

如果需要两个指令进行通信,而不依赖于指令层次结构,请通过服务执行此操作。还不清楚为什么该指令应该放在DOM中一个可见的位置(主体等)。只需将元素动态添加/删除到所需的位置。您可以从现有的角度模态解决方案中学习一些技巧。@estus任何隐藏溢出的父项都会影响所有嵌套的子项,它可能是一个角度材质对话框或简单的div元素!这就是追加到body root的原因。如果您需要两个指令来通信,而不依赖于指令层次结构,那么可以通过服务来完成。还不清楚为什么该指令应该放在DOM中一个可见的位置(主体等)。只需将元素动态添加/删除到所需的位置。您可以从现有的角度模态解决方案中学习一些技巧。@estus任何隐藏溢出的父项都会影响所有嵌套的子项,它可能是一个角度材质对话框或简单的div元素!这就是附加到体根的原因。