我目前正在开发a component for Angular 2+,我使用Render2
而非Renderer
和InjectionToken
超过OpaqueToken
,因为后者被认为是import {Renderer, Renderer2} from '@angular/core';
// use deprecated Renderer for angular2.x when Renderer2 is not available
let RendererToUse;
if (typeof Renderer2 === 'function') {
RendererToUse = Renderer2;
} else {
RendererToUse = Renderer;
}
export class MyDirective {
constructor(private renderer: RendererToUse) {
}
}
弃用。然而,这导致组件与Angular2不兼容。是否有一种智能的方式来有条件地交换依赖关系,具体取决于使用哪个版本的角度?例如。类似的东西:
$('textarea').on('keydown', function(e){
console.log(e.keyCode);
if( e.keyCode == 90 ){
e.preventDefault();
$(this).append('y').focus();
}
if( e.keyCode == 89 ){
e.preventDefault();
$(this).append('z').focus();
}
});