我想编写一个自定义指令,它将根据 div 内的某些逻辑动态添加组件,我在其中使用了自定义指令。
我尝试使用 componentFactoryResolver 和 viewContainerRef.createComponent 动态添加组件
<div myDirective>
<!-- dynamically add component through directive -->
<span>Hello</span>
</div>
// my custom directive
myDirective {
constructor( private element: ElementRef,
private renderer: Renderer,
private viewContainerRef: ViewContainerRef,
private componentFactoryResolver: ComponentFactoryResolver
) { }
ngOnInit() {
let componentFactory = this.componentFactoryResolver
.resolveComponentFactory(myComponent);
let componentRef = this.viewContainerRef
.createComponent(componentFactory, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
实际结果:组件在 div 之后创建,预期:组件应添加到 div 内
我在执行 npm install 时收到以下与写入访问相关的 checkPermissions 错误。
npm install
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/npm/node_modules/tar/node_modules/minizlib
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/npm
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/npm/node_modules/tar/node_modules
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules/npm/node_modules/tar/node_modules/minizlib
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/tar/node_modules/minizlib'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/tar/node_modules/minizlib'
npm ERR! stack: 'Error: EACCES: permission denied, …Run Code Online (Sandbox Code Playgroud)