1、把@click改成onClick

// 新建标签
createLableObj(label) {
    const { id, text, value, vector } = label;
    let laberDiv = document.createElement('div'); //创建div容器
    laberDiv.innerHTML = 
    `<div onClick="onClickLabel('${text}')" id="labelDom" style="cursor:pointer">
        <div class='label-name1' id='label${id}'>${text}</div>
        <div class='label-point1'></div>
    </div>`;
    let pointLabel = new CSS3DSprite(laberDiv);
    // laberDiv.style.pointerEvents = 'none';//避免HTML标签遮挡三维场景的鼠标事件
    pointLabel.position.set(vector.x, vector.y, vector.z);
    return pointLabel;
},

2、在生命周期created中赋值方法给window对象,如:

created() {
        window.onClickLabel = this.onClickLabel;// 解决字符串模板@click无效的问题
},

3、方法可以正常调用了,如:

onClickLabel(label){
   console.log(label)
},
Logo

前往低代码交流专区

更多推荐