我正在构建的功能大约是Angular-UI Bootstrap Modal提供的90%的功能。唯一的区别是:
windowClass
处理了样式方面)问题在于$modalStack service
hard codes the body.append
call,如下所示:
body.append(modalDomEl)
body.addClass(OPENED_MODAL_CLASS)
我首先简单地复制/粘贴每个服务上的open
方法(重命名为openWithinElement),然后修改我需要使其工作的内容。如您所见,如果您运行该应用程序,则会在未定义的$ q依赖项上引发错误。好吧,我想这是有道理的。
接下来,我将依赖项添加到provider.decorator
方法,该方法绕过了所有依赖项错误。但后来我又收到了另一个错误,function getTemplatePromise is undefined
......当然,它没有被定义。 It's an internal method to the service.
当我真正陷入困境时。使用新方法装饰此服务似乎是不可能的,无需重新定义服务中的所有私有函数/对象/道具。
是这样的吗?
[编辑添加]
我最终用updateParentElement
方法装饰了服务,然后将模态移动到传入的元素中,该元素在.opened promise中执行。它是hacky,但是很有效,但我希望装饰员能够找到一些东西。
[/编辑]
答案 0 :(得分:0)
我认为最简单的解决方案是提供特定的windowClass,然后在对话框打开后,通过该类找到它的元素并将其移动到容器中。