在angular 2服务中调用auther内的方法

在angular 2服务中调用auther内的方法,angular,Angular,我得到的属性“getKey”在类型“HtmlanchoreElement”上不存在错误 我尝试了很多解决方案,但我仍然有同样的问题。 我想从标记中提取文本,并在另一种方法中使用它。 我需要这样做,以便将该文本发送到另一个服务,即list.service1.ts。 我试图通过执行以下操作直接发送它:this.listService1.findList(text)而不是创建中间方法,但会出现相同的错误:属性“listService1”在类型“HtmlanchoreElement”上不存在。。 我需要

我得到的
属性“getKey”在类型“HtmlanchoreElement”上不存在
错误

我尝试了很多解决方案,但我仍然有同样的问题。 我想从
标记中提取
文本
,并在另一种方法中使用它。 我需要这样做,以便将该文本发送到另一个服务,即
list.service1.ts
。 我试图通过执行以下操作直接发送它:
this.listService1.findList(text)
而不是创建中间方法,但会出现相同的错误:
属性“listService1”在类型“HtmlanchoreElement”上不存在。
。 我需要每次单击
标记时,我都可以在其他服务方法中使用其中的文本

list.service.ts
看起来您是在服务的方法中直接操作DOM。这不是一种有棱角的做事方式。您可能最好先阅读Angular教程()或类似的内容,以了解框架的支柱。除了Picci的优秀建议外,您还可以在此处找到一些“入门”Angular 2+代码:它显示了如何使用路由参数在用户每次单击链接标记时传递值。也就是说,您的问题可以通过使用箭头函数(
()=>
)而不是匿名的
函数()来解决。好的,非常感谢
@Injectable()
export class ListService {
    constructor(private listService1: ListService1) {
        this.listService1 = listService1;
    }

    findAllList() {
        const ulList = document.getElementById('list1');
        const dbrefList = database().ref().child('LISTE_OFFRE_EN_ATTEND');
        const dbrefList1 = dbrefList.child('LISTE_OFFRE_EMPLOI');
        dbrefList1.on('child_added', snap => {
            const li = document.createElement('li');
            const a = document.createElement('a');
            a.href = "aff-offre";
            const list1 = snap.key;
            a.innerText = list1;
            li.appendChild(a);
            ulList.appendChild(li);
            a.addEventListener("click", function () {
                const text = a.outerText;
                this.getKey(text);
            });
        });
    }

    getKey(text) {
    }
}