Angular:"找不到名称",元素在DOM中尚未存在

时间:2018-04-20 12:40:12

标签: angular typescript

我正在使用Angular5,我有一个小聊天系统。

当用户发送消息时,会创建一个LI元素:

chat-component.html

<li #ChatListItem *ngFor="let message of messages" class="list-group-item">
    {{message}}
</li>

这意味着在页面加载时,#ChatListItem尚未存在于DOM中。

我需要在#ChatListItem上执行一些操作(即自动滚动),所以在我的组件中我有:

chat-component.ts

@ViewChildren('ChatListItem') chatListItem: QueryList<ChatListItem>;

但是当我尝试编译时,我收到了以下错误消息:

error TS2304: Cannot find name 'ChatListItem'.

即使我有此错误,这仍然适用于ng serve,但我无法运行任何ng build

我想这是因为#ChatListItem中不存在DOM? 我怎样才能使这项工作成功?

1 个答案:

答案 0 :(得分:3)

您的元素不是ChatListItem类型,但它只是一个li元素。因此,您需要在li中提供QueryList的类型。

@ViewChildren('ChatListItem') chatListItem: QueryList<HTMLLIElement>