装饰Angular-UI Bootstrap模式

时间:2014-06-05 15:32:35

标签: angularjs angular-ui-bootstrap angular-decorator

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

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

问题在于$modalStack service hard codes the body.append call,如下所示:

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

Step one is here

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

接下来,我将依赖项添加到provider.decorator方法,该方法绕过了所有依赖项错误。但后来我又收到了另一个错误,function getTemplatePromise is undefined ......当然,它没有被定义。 It's an internal method to the service.

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

是这样的吗?

[编辑添加] 我最终用updateParentElement方法装饰了服务,然后将模态移动到传入的元素中,该元素在.opened promise中执行。它是hacky,但是很有效,但我希望装饰员能够找到一些东西。 [/编辑]

1 个答案:

答案 0 :(得分:0)

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