Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何针对*ngFor生成的特定元素?_Angular_Typescript - Fatal编程技术网

Angular 如何针对*ngFor生成的特定元素?

Angular 如何针对*ngFor生成的特定元素?,angular,typescript,Angular,Typescript,我正在创建一个测验应用程序,其中angular 6作为图像(本例中为问题)和4个选项,我需要更改用户将单击的选项的颜色,介于“红色”和“绿色”之间,因为它是正确或错误的选项。 以下是生成选项的我的循环: <div class="quiz_wrapper"> <div class="options"> <ul> <li *ngFor="let Answer of displayedQuizAnswers" (click)="onChoseAn

我正在创建一个测验应用程序,其中angular 6作为图像(本例中为问题)和4个选项,我需要更改用户将单击的选项的颜色,介于“红色”和“绿色”之间,因为它是正确或错误的选项。 以下是生成选项的我的循环:

 <div class="quiz_wrapper">
<div class="options">
  <ul>
    <li *ngFor="let Answer of displayedQuizAnswers" (click)="onChoseAnswer(Answer)" [ngStyle]="answerStyle">
      <a>{{Answer}}</a>
    </li>
  </ul>
</div>

    {{答案}

当我在“onChoseAnswer(Answer)”的帮助下更改“answerStyle”时,所有选项都会更改。
是否有任何方法可以从生成的元素中针对特定的元素样式?

如果要将其用于特定元素,则需要将该属性单独添加到对象答案中

 <li *ngFor="let Answer of displayedQuizAnswers" (click)="onChoseAnswer(Answer)" [ngStyle]="{{answer.Style}}">
      <a>{{Answer}}</a>
 </li>

{{答案}


如果要将其用于特定元素,则需要将该属性单独添加到对象应答中

 <li *ngFor="let Answer of displayedQuizAnswers" (click)="onChoseAnswer(Answer)" [ngStyle]="{{answer.Style}}">
      <a>{{Answer}}</a>
 </li>

{{答案}


redd,有很多方法可以实现你想要的。更简单的是,你显示的Quizanswers是一个对象数组。假设您有一个类似

displayedQuizAnswers=[
   {question:'....',index:0,ok:false}
   {question:'....',index:1,ok:true}
   {question:'....',index:2,ok:false}
   {question:'....',index:3,ok:false}
]
和一个变量

response:number=-1
你可以写

<ul>
    <li *ngFor="let answer of displayedQuizAnswers;let i=index" 
        [style.background-color]="response==i?answer.ok?'green':'red':'inherit'">
      <a (click)="response==-1 && i=response">{{answer.question}}</a>
    </li>
  </ul>
    {{答案.问题}

redd,有很多方法可以实现你想要的。更简单的是,你显示的Quizanswers是一个对象数组。假设您有一个类似

displayedQuizAnswers=[
   {question:'....',index:0,ok:false}
   {question:'....',index:1,ok:true}
   {question:'....',index:2,ok:false}
   {question:'....',index:3,ok:false}
]
和一个变量

response:number=-1
你可以写

<ul>
    <li *ngFor="let answer of displayedQuizAnswers;let i=index" 
        [style.background-color]="response==i?answer.ok?'green':'red':'inherit'">
      <a (click)="response==-1 && i=response">{{answer.question}}</a>
    </li>
  </ul>
    {{答案.问题}

这个问题是重复的这个问题是重复的