Angular2 - 来自TypeScript基础抽象类的@ViewChild

时间:2016-04-25 13:44:33

标签: angular angular-routing viewchild

我正在寻找@ this SO Q & A,并想知道是否有可能有一个基地abstract class?而不是interface,是否可以通过 Angular2 中的@ViewChild装饰器在父组件中访问子组件中的基类的不同实现?

理想情况下,我想为通过父Router实例化的子组件提供一种能够调用父路由器的方法 - 这有意义吗?我希望孩子能够拨打parentRouter.navigate(["SomeOtherRoute", { args: 'blah' }]);

我最初的方法是让子组件实现一个基类,父组件将通过@ViewChild装饰器获得引用。父对象subscribe将尝试调用导航事件,并且其处理程序将调用router.navigate(因为它具有父级别的路由器)。

3 个答案:

答案 0 :(得分:4)

您不能使用$image = @file_get_contents('http://www.example.com/image.jpg'); if ($image != '') { $filename = uniqid.'.jpg'; file_put_contents('/tmp/'.$filename, $image); } // You can now insert your image using the $filename variable $pdf->image('/tmp/'.$filename); 或任何类似的装饰器来查询组件的子类。

仅支持模板变量的名称和具体的组件和指令类型(在视图中实际实例化为组件的类型)。

答案 1 :(得分:4)

实际上很简单。例如,如果您有一个EmployeeComponent类,它扩展了PersonComponent这是一个抽象类。

您可以通过将其添加到EmployeeComponent中来使其变得平易近人。

providers: [ {provide: PersonComponent, useExisting: EmployeeComponent }]

在容器组件中使用ViewChildren()或ContentChildren()如下:

@ViewChildren(PersonComponent) public persons: QueryList<PersonComponent>;

答案 2 :(得分:0)

是的!这是可能的,我发现在某些情况下它可以更干净,但对于您的用例,我认为服务是可取的。请参阅我对有关接口的原始问题的回答。我也许应该把它贴在这里。

https://stackoverflow.com/a/41151492/4293638