我正在使用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
?
我怎样才能使这项工作成功?
答案 0 :(得分:3)
您的元素不是ChatListItem
类型,但它只是一个li
元素。因此,您需要在li
中提供QueryList
的类型。
@ViewChildren('ChatListItem') chatListItem: QueryList<HTMLLIElement>