要在光标处向可编辑的 div 中添加带属性的图像标签,可以使用 Angular 7 的 Renderer2 来实现。以下是一个示例解决方法:
import { Component, Renderer2, ElementRef } from '@angular/core';
constructor(private renderer: Renderer2, private elementRef: ElementRef) { }
ngOnInit() {
const editableDiv = this.elementRef.nativeElement.querySelector('#editableDiv');
this.renderer.listen(editableDiv, 'click', this.handleClick.bind(this));
}
handleClick(event) {
const img = this.renderer.createElement('img');
this.renderer.setAttribute(img, 'src', 'path/to/image.jpg');
this.renderer.setAttribute(img, 'alt', 'Image');
// 如果需要设置其他属性,可以使用类似的方式进行
// this.renderer.setAttribute(img, 'attributeName', 'attributeValue');
// 获取光标所在的位置,并将图像元素插入到光标处
const range = window.getSelection().getRangeAt(0);
range.insertNode(img);
}
通过以上步骤,当点击可编辑的 div 元素时,会在光标所在位置插入一个带有指定属性的图像标签。记得在组件的模板中添加适当的样式来显示图像标签。