Tag: angular

Angular 2dynamic标签,用户点击select的组件

我试图设置一个允许组件注册自己(标题)的选项卡系统。 第一个选项卡就像一个收件箱,有大量的动作/链接项目供用户select,每个点击都应该能够实例化一个新的组件,点击。 操作/链接来自JSON。 实例化后的组件将自己注册为一个新的选项卡。 我不确定这是否是最好的方法? 沙发我见过的唯一指南是静态选项卡,这并没有帮助。 到目前为止,我只有在主引导的标签服务持续整个应用程序,看起来像这样的东西。 export interface ITab { title: string; } @Injectable() export class TabsService { private tabs = new Set<ITab>(); addTab(title: string): ITab { let tab: ITab = { title }; this.tabs.add(tab); return tab; } removeTab(tab: ITab) { this.tabs.delete(tab); } } 问题: 1)如何在收件箱中创build一个dynamic列表来创build新的(不同的)标签? 我有点猜测DynamicComponentBuilder将被使用? 2)如何从收件箱创build的组件(点击)注册自己的标签,也被显示? 我猜ng-content,但我找不到有关如何使用它的很多信息 编辑:尝试澄清 将收件箱视为邮件收件箱,将项目提取为JSON并显示多个项目。 一旦其中一个项目被点击,一个新的选项卡与该项目的行动“types”创build。 该types是一个组件 编辑2:图像 […]

Angular / RxJs什么时候应该退订订阅?

在Angular应用程序中使用Subscription.unsubscribe()的最佳实践是什么? 什么时候应该存储Subscription并在销毁事件上调用unsubscribe()以及何时可以忽略它们。 保存所有的订阅引入了很多混乱的组件代码。 HTTP客户端指南忽略像这样的订阅: getHeroes() { this.heroService.getHeroes() .subscribe( heroes => this.heroes = heroes, error => this.errorMessage = <any>error); } 在同一时间路线和导航指南说: 最终,我们将在其他地方导航。 路由器将从DOM中删除这个组件并销毁它。 在这之前我们需要自己清理。 具体来说,我们必须在Angular销毁组件之前取消订阅。 不这样做可能会造成内存泄漏。 我们在ngOnDestroy方法中取消订阅我们的Observable 。 private sub: any; ngOnInit() { this.sub = this.route.params.subscribe(params => { let id = +params['id']; // (+) converts string 'id' to a number this.service.getHero(id).then(hero => this.hero = hero); }); […]