我正在寻找@ this SO Q & A,并想知道是否有可能有一个基地abstract class
?而不是interface
,是否可以通过 Angular2 中的@ViewChild
装饰器在父组件中访问子组件中的基类的不同实现?
理想情况下,我想为通过父Router
实例化的子组件提供一种能够调用父路由器的方法 - 这有意义吗?我希望孩子能够拨打parentRouter.navigate(["SomeOtherRoute", { args: 'blah' }]);
。
我最初的方法是让子组件实现一个基类,父组件将通过@ViewChild
装饰器获得引用。父对象subscribe
将尝试调用导航事件,并且其处理程序将调用router.navigate
(因为它具有父级别的路由器)。
答案 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)
是的!这是可能的,我发现在某些情况下它可以更干净,但对于您的用例,我认为服务是可取的。请参阅我对有关接口的原始问题的回答。我也许应该把它贴在这里。