一个组件可以接受另一个组件作为Angular 2中的Input()吗?

时间:2016-09-06 22:30:07

标签: angular angular2-template

警告!

在答案中使用技巧之前,请检查this issue,其中描述了错误Expression has changed after it was checked. Previous value: 'CD_INIT_VALUE'.我还提供了一个漂亮的(imo)解决方法。

问题

我写了一个弹出窗口(对话框)组件,它在屏幕中央创建一个带有两个按钮和关闭图标的小窗口。我想将这个组件用于一些目的:提示,警报,确认等。所以我需要有条件地包含不同的模板。我是对的,唯一的好办法是:to include all code at once and use *ngIf?或者可能是我应该为提示创建一个组件,一个用于确认?但在第二种情况下,我会得到一些重复的代码行。

提示

您可以与Angular 2 @ViewChild in *ngIf

合作使用此问题

1 个答案:

答案 0 :(得分:1)

您可以在模态组件中使用select ct.srv_ct_label as service, count (distinct cln.cln_urn) as total from cw_domain dmn inner join cw_service srv on srv.srv_dmn_fk=dmn.dmn_pk inner join cw_client cln on cln.cln_pk=srv.srv_cln_fk inner join cw_subservice sbs on sbs.sbs_pk=srv.srv_sbs_fk inner join cw_service_category ct on ct.srv_ct_rpk=sbs.sbs_srv_ct_rfk where srv_ct_rpk in ( '001', '002', '004', '025', '040', '003', '026', '017', '016', '034', '041', '042', '018', '029' ) and srv.srv_date >=@startDate and srv.srv_date <=endDate group by ct.srv_ct_label, srv_ct_rpk, srv.srv_date order by case srv_ct_rpk when '001' then 1 when'040' then 2 when '003' then 3 when '025' then 4 when '002' then 5 when '004' then 6 when '041' then 7 when '026' then 8 when '017' then 9 when '034' then 10 when '042' then 11 when '018' then 12 when '029' then 13 end ,只需传递要在模式中显示的组件类型,类似于我在stackoverflow.com/questions/36325212 / ...中的解释,其中类型为传递给@Input() 您还可以使用共享服务来通知模态组件以显示一个组件,从而可以更轻松地从应用程序中的任何位置进行寻址。 另请参阅https://angular.io/docs/ts/latest/cookbook/component-communication.html