【问题标题】:Angular 2. How can I replace or include component into textAngular 2.如何将组件替换或包含到文本中
【发布时间】:2016-03-04 15:36:14
【问题描述】:

情况 - 我有一个简单的组件:

@Component({
    selector: 'body',
    template: 'Body: {{ body }}'
})

export class PostBodyComponent {
    @Input('body') body: string;
}

我想用其他角度组件替换正文中的一些子字符串,例如“正文”可能包含一些链接,我想用一些链接组件替换这个“链接”。意味着我需要显示已经动态加载的组件而不是此链接的正文。是否有可能以某种方式显示内部动态加载的组件的结果?

【问题讨论】:

  • 你不能只使用普通的子组件作为你的“链接”<link-component></link-component>吗?
  • 目前没有,我从其他服务收到此数据

标签: javascript replace typescript angular dynamic-loading


【解决方案1】:

您不能使用动态插入的 HTML 创建组件或指令。您可以使用 DynamicComponentLoader 命令式地添加/删除组件

【讨论】:

  • 但是在这种情况下如何使用呢?备注:我从外部服务接收数据
  • 这有点含糊。您可以准备组件并根据传入的数据选择要添加的组件之一。有关更详细的说明,我需要有关您的要求的更多详细信息。
  • 好的。我从其他服务收到一些文本数据,例如: {"body": "blablabla this is link google.com and other, other, other"} 我已经准备好 LinkComponent,我需要向用户展示这个正文,但是“google.com”的我想展示我的 LinkComponent。
  • 请参阅我在答案中发布的 DynamicComponentLoader 链接中的loadIntoLocation(...)。目前仍然存在一些限制,例如在宿主组件和动态插入的组件之间不支持数据绑定。 StackOverflow 上有很多关于如何使用 DCL 的问题以及答案和示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 2019-09-29
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多