【问题标题】:Assign component to a variable Angular 4+将组件分配给变量 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“喜欢”它(不在乎)。但是想知道它是否真的可以/有效,或者我应该创建一个类型/接口
  • 您应该在问题中提出您的问题,而不是在答案中。您仍然可以编辑问题。
  • 好的,谢谢。我刚刚发布了一个新问题——这次关注这个问题。我第一次问这个的原因,因为它可以解决问题,也是一个普遍的问题

标签: angular typescript


【解决方案1】:

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

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

任何方法都行。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗨,谢谢。这不是在组件之间进行通信。它与角材料一起使用。为了使用 .open() 方法,我需要有条件地打开一个具有不同组件的模式。问题是 .open() 方法显然不接受字符串作为参数,只接受组件名称。意思是,如果我将组件名称放在一个字符串中,然后作为 .open() 的参数,它将不接受它并给出错误。因此需要将组件分配给一个变量,因此 .open() 将接受它。而不是 .open(CompB, ) , .open(c, )
    • 好的,看看这篇文章。它还与带有角度材料的打开对话框有关。 stackoverflow.com/questions/48073057/…
    猜你喜欢
    • 2014-09-07
    • 2011-09-25
    • 2016-12-12
    • 1970-01-01
    • 2023-03-04
    • 2020-11-01
    • 2023-04-07
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多