是否可以扩展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中定义
答案 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