首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配合*ngIf使用getElementById?

如何配合*ngIf使用getElementById?
EN

Stack Overflow用户
提问于 2019-09-30 22:26:32
回答 1查看 1.5K关注 0票数 1

我正在尝试选择一个带有*ngIf的div:

代码语言:javascript
复制
<div id="explanation" *ngIf="isCorrect(option.optionValue)">

当我使用getElementById时,它返回null。如果我删除了ngIf,它可以正常工作,但我需要在我的应用程序中使用ngIf。那么我该如何选择div呢?

编辑:重构后的代码如下:

代码语言:javascript
复制
<div [hidden]="!isCorrect(option.optionValue)">
  <div id="explanation">
    Option {{ question.answer }} is correct because {{ question.explanation }}.
  </div>
</div>


ngAfterViewInit() {
  let itemFrom = document.getElementById('explanation');
  let itemTo = document.getElementById('question');
}

radioChange(answer) {
  this.question.selectedOption = answer;
  this.answer.emit(answer);

  this.moveExplanation(this.itemFrom, this.itemTo);
}

moveExplanation(from, to) {
  to.replaceWith(from);
}

问题和解释现在都被记录下来了,replaceWith工作,只需要从正确答案下面删除原始解释,每个问题的解释应该移动到问题框中,类似地从正确答案下面删除解释。

EN

回答 1

Stack Overflow用户

发布于 2019-09-30 22:59:46

如果您想要使用TypeScript访问您的div,那么您需要用一个标签来标记它

代码语言:javascript
复制
<div id="explanation" *ngIf="isCorrect(explanation)" #explanation>

并将名称添加到您使用的参数中,以传递该值!

或使用

代码语言:javascript
复制
<div [(ngModel)]="option"></div
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58169942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档