【发布时间】:2019-12-10 02:58:23
【问题描述】:
我有一个有效的堆栈闪电战。我的更改在基于服务的文件夹中
我正在尝试详细说明
工作
1) 指令和拖放功能在模板静态时起作用 放置。
不工作
2) 当我加载动态组件时(传递 html 内容[从后端接收 现实世界中的响应] 从示例组件到快乐组件)自定义 指令不起作用,并且示例组件中存在的功能也是 不是从快乐组件触发的
我从后端收到的数据需要从示例中传递 组件到快乐组件
"<div xmlns="http://www.w3.org/1999/xhtml" _ngcontent-c18="" appdropzone=""
appmovablearea="" class="dropzone">
<div _ngcontent-c18="" appdroppable="" appmovable=""
class="box draggable movable ng-star-inserted" touch-action="none"
style="transform: translateX(136.8px) translateY(112.8px);"> room1 </div>
<div _ngcontent-c18="" appdroppable="" appmovable=""
class="box draggable movable ng-star-inserted" touch-action="none"
style="transform: translateX(136.8px) translateY(112.8px);"> room2 </div>
</div>"
【问题讨论】:
-
你可以发布静态示例并清理代码吗?我认为这就是它被否决的部分原因。这么多不必要的代码很难理解是怎么回事。
-
@christo8989 我已经删除了基于组件的文件夹并尽我所能清理不需要的代码。我放置了 5 个指令文件,1 个用于拖放功能的服务文件,用于从示例和快乐组件加载的模板中。 (续)
-
@christo8989 Happy 组件具有我将从后端收到的那种 html 模板(让我们在示例组件中说),我需要将它传递给 Happy 组件(现在我直接放在里面快乐组件,因为我无法找出传递模板的正确方法,最后但并非最不重要的一点是,指令(拖放)没有应用于快乐组件中存在的元素。希望现在我能解释一下. 谢谢!
-
@christo8989 更新的 stackblitz 链接 = stackblitz.com/edit/save-qkcend
-
我想我真的必须为你重写你的代码,这不是这个目的。所以我没有答案来解决你的问题。但是,我无法为您指出一些解决方案。您可能想查找状态管理。这将使在组件之间跟踪框变得更加容易。我推荐 ngxs,但你也可以使用 ngrx 或 akita。代码工作的部分原因是状态/对象存在于该组件上,但不存在于另一个组件上。我希望这会有所帮助。