将组件分配给变量 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+的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有休息调用的情况下将 php json 变量分配给 angular?
Angular 2 将表单分配给变量不起作用#f="form" (submit)="onSubmit(f.value)"