0

我正在构建一个功能,它大约是 Angular-UI Bootstrap Modal 提供的功能的 90%。唯一的区别是:

  • 模态需要相对于容器 div 定位(我已经使用 处理了样式方面windowClass

问题在于对call的$modalStack service 硬编码body.append,如下所示:

body.append(modalDomEl)
body.addClass(OPENED_MODAL_CLASS)

第一步在这里

我首先简单地复制/粘贴open每个服务上的方法(重命名为 openWithinElement),然后修改我需要使其工作的内容。如您所见,如果您运行该应用程序,它会在未定义 $q 依赖项时引发错误。好吧,我想这是有道理的。

接下来,我将依赖项添加到provider.decorator方法中,从而绕过了所有依赖项错误。但是后来我遇到了另一个错误,function getTemplatePromise is undefined......当然它没有定义。这是服务的内部方法。

那是我真正陷入困境的时候。如果不重新定义服务中的所有私有函数/对象/道具,似乎不可能用新方法装饰此服务。

是这样吗?

[编辑添加] 我最终用一个updateParentElement方法装饰了服务,然后将模式移动到传入的元素,该元素在 .opened 承诺中执行。它很hacky,但是可以,但是我希望装饰器缺少一些东西。[/编辑]

4

1 回答 1

0

我看到的最简单的解决方案是提供特定的 windowClass,然后在打开对话框后通过该类找到它的元素并将其移动到容器中。

于 2014-06-05T17:53:25.493 回答