考虑具有自定义组件的UI <foo>
-现在假设它只是文本。
<foo id="foo-id">SOMETEXT</foo>
我想在ui上的两个地方显示此内容-其中一个是模态。如何将模态内容委托给此现有元素?我使用的是开放式jquery/angularjs或原生html解决方案。
<foo id="foo-id">SOMETEXT</foo>
<div class="modal fade" id="exampleModal" ...>
...
<div class="modal-body">
### REFERENCE TO ID #foo-id here ###
</div>
</div
我试图避免使用该元素的第二个示例,例如:
<foo id="foo-id">SOMETEXT</foo>
<div class="modal fade" id="exampleModal" ...>
...
<div class="modal-body">
<foo id="foo-id-2">SOMETEXT</foo>
</div>
</div
更多上下文
我之所以想这样做,是因为我们有一个带有下拉扩展程序的网页,它已经呈现了丰富的组件。我们正在尝试添加一个“弹出”按钮,该按钮将在模式窗口中显示渲染的元素。因为在按下popout时元素已经处于正确的加载状态,所以将组件委托给预定义的组件而不是重新创建组件是有意义的。
堆栈是angularjs、bootstrap 3、jquery,我无法更改:(
3条答案
按热度按时间bjp0bcyl1#
如果您不需要两个副本,您可以尝试分离元素并将其插入新位置
wh6knrhe2#
我在vanilla javascript中的做法是创建一个函数,该函数创建一个模态元素,然后将其附加到所需的dom元素,例如body。
例如:
然后使用它创建n个模态元素,并将它们附加到任何需要的位置,例如主体,如下所示:
这样你的html就会更干净。注:此
fooElement
必须是dom元素,否则将抛出错误。希望它能起作用!50few1ms3#
被接受的答案对我有用;然而,为了完整性,这里有另一种方法。
使用
$scope/$rootScope
事件发射器用于在组件之间广播事件。如果组件具有明确的父/子关系,$scope
通常是足够的,如果他们是兄弟姐妹,那么他们可以通过$rootScope
.因为这是一个angularjs项目,所以我遵循这个简单的指南。