将组件分配给变量 Angular 4+

Posted

技术标签:

【中文标题】将组件分配给变量 Angular 4+【英文标题】:Assign component to a variable Angular 4+ 【发布时间】:2018-12-19 00:00:03 【问题描述】:

将组件分配给变量是有效的打字稿/Angular,还是正确的?只是分配,没有类型等。

例如:

... 
import CompB from './comp-b.component';

export class CompA 
   let c = CompB; 


或者正确的方法是创建一个接口/使用 generic 等?

谢谢。

【问题讨论】:

Typescript 编译器已经告诉你它是否是有效的 Typescript。能够启动应用程序会告诉您 Angular 是否喜欢它。这里真正的问题是什么? 嗨,请参阅下面的评论。需要在 Angular 材质中使用它。 CLI“喜欢”它(不在乎)。但是想知道它是否真的可以/有效,或者我应该创建一个类型/接口 您应该在问题中提出您的问题,而不是在答案中。您仍然可以编辑问题。 好的,谢谢。我刚刚发布了一个新问题——这次关注这个问题。我第一次问这个的原因,因为它可以解决问题,也是一个普遍的问题 【参考方案1】:

我认为您希望在组件之间进行通信。如果这是您想要的,那么您应该使用以下方式进行交流:

    使用输入和输出装饰器进行属性绑定 可以创建一个通用服务来通过该服务进行通信和传递数据。

任何方法都行。

将一个组件用于另一个组件是不好的。

【讨论】:

【参考方案2】:

您创建服务/接口以实现您想要的相同功能。将组件用于另一个组件不是一个好主意。

您可以使用服务进行通信。有关更多信息,请访问此 URL:https://hackernoon.com/creating-interfaces-for-angular-services-1bb41fbbe47c

【讨论】:

嗨,谢谢。这不是在组件之间进行通信。它与角材料一起使用。为了使用 .open() 方法,我需要有条件地打开一个具有不同组件的模式。问题是 .open() 方法显然不接受字符串作为参数,只接受组件名称。意思是,如果我将组件名称放在一个字符串中,然后作为 .open() 的参数,它将不接受它并给出错误。因此需要将组件分配给一个变量,因此 .open() 将接受它。而不是 .open(CompB, ) , .open(c, ) 好的,看看这篇文章。它还与带有角度材料的打开对话框有关。 ***.com/questions/48073057/…

以上是关于将组件分配给变量 Angular 4+的主要内容,如果未能解决你的问题,请参考以下文章

如何通过将 id 存储在变量中来渲染组件?

如何将多个变量传递给 Angular 2 中的组件?

如何在没有休息调用的情况下将 php json 变量分配给 angular?

Angular 2 将表单分配给变量不起作用#f="form" (submit)="onSubmit(f.value)"

一种将用户输入分配给变量然后跨组件共享该变量的方法

angular 4/socket.io 访问全局变量和函数调用