使用输入/输出扩展组件

时间:2015-11-30 11:35:46

标签: angular

是否可以扩展Angular 2中的组件并仍然使用父级中的输入和输出?

non_zero_indices = find(orig_vector); % get array indices of non-zero elements
n_non_zero = length(non_zero_indices);
n_copies   = ceil(n_non_zero / 4);       % eg. with 6 non-zero elements we will have 2 copies
new_vectors = zeros(n_copies, length(orig_vector));   % matrix of new vectors where vectors go in rows

for i=0:n_copies - 2
  idx = non_zero_indices(1+i*4:4+i*4);
  new_vectors(i+1, idx) = orig_vector(idx);
end
idx = non_zero_indices(1+(n_copies-1)*4:end);  % handle end which may have fewer than 4 elements
new_vectors(n_copies, idx) = orig_vector(idx);

当我尝试扩展组件时,除了需要属性/装饰器的代码(如输入和输出)之外,类中的所有内容都有效。 我做了一个说明问题的傻瓜:http://plnkr.co/edit/cfTKgScbaXMmEMoGY0zr

Book是一个具有一个输入/输出Name的基本组件。

EBook继承自Book并添加输入/输出DownloadUrl,Size。

正如您在plunker中看到的那样,EBook没有获得名称,因为输入是在Book中定义的而不是在EBook中定义

2 个答案:

答案 0 :(得分:4)

对于rc4,仅当子类本身没有输入装饰器时才会继承输入装饰器。 否则你必须复制所有声明。

这是一个已知问题,您可以在此处跟进:https://github.com/angular/angular/issues/5415

答案 1 :(得分:1)

对于当前版本的Angular(编写此版本时为7.0.1),您的用例得到了完美的支持。奥利弗(Oliver)链接的issue已关闭。

创建了一个示例Stackblitz(仅突出显示输入装饰器): https://stackblitz.com/edit/angular-fepmtp