Angular!和奇偶

Angular ! and odd even

这是任务: 您的任务是创建一个名为 TestComponent 的简单 Angular 组件,由选择器 test-component 标识 该组件必须有一个名为 inputData 的 Array 类型的输入 属性。 如果没有输入数据(为空或丢失),您必须在 div 中写入“无数据”,id="noData"。如果输入 假设此 div 不能出现在页面的 DOM 中。

如果给定输入,则必须将输入数组的元素写入单独的 div 中。 divs 必须是 id="dataList" 的 div 的 children。如果任何给定字符串的长度为奇数,则文本的颜色应为红色。 如果是偶数,颜色应该是绿色。

这是我所做的:

import { Component, NgModule, EventEmitter, Output, Input } from '@angular/core';
 
@Component({
  selector: 'app-test-component',
  template: `
    <test-component>
        <div id="noData" *ngIf=!'inputData'>No data</div>
        <div id="dataList"></div>
    </test-component>
    <test-component>
        <div id="dataList" *ngIf='inputData'>
            <div *ngFor="let item of inputData; odd as isOdd; even as isEven;[ngClass]="{even: isEven, odd: isOdd}">
                <div>{{item}}</div>             
            </div>
        </div>
    </test-component>
  `,
   style: '.even {
    background-color: read;
      color: white;
    }

    .odd {
      background-color: gren;
      color: white;
    }'
})

export class TestComponent{
  @Input() inputData: Array<string>;
}

我的疑惑是尊重!在 ngIf 上,取出 Dom 元素和奇数、偶数。这些是我还没有的部分。你能给我一些更正吗?

你的bang/!放错地方了。它应该在引号内。

<div id="noData" *ngIf="!inputData!>No data</div>

isOdd 或 isEven 的来源是什么?那是输入的字段还是您需要计算它?你可以做类似...

<div *ngFor="let item of inputData; index as index;" [ngClass]="{even: index % 2 === 0, odd: index % 2 !== 0}">