Angular 角度2+中的测试指令;茉莉,我犯了个错误

Angular 角度2+中的测试指令;茉莉,我犯了个错误,angular,unit-testing,angularjs-directive,jasmine,Angular,Unit Testing,Angularjs Directive,Jasmine,当我使用Angular 2+Jasmine运行测试时,我得到以下错误。有人知道我如何解决这个问题吗 我已经在app.module.ts中导入了该指令 无法绑定到“highlightData”,因为它不是“li”的已知属性。(“[ERROR->][highlightData]=“item.name”> 列表.组件.ts <ul> <li *ngFor="let item of list" [highlightData]="item.name">{{item.name

当我使用Angular 2+Jasmine运行测试时,我得到以下错误。有人知道我如何解决这个问题吗

我已经在app.module.ts中导入了该指令

无法绑定到“highlightData”,因为它不是“li”的已知属性。(“[ERROR->][highlightData]=“item.name”>

列表.组件.ts

<ul>
    <li *ngFor="let item of list" [highlightData]="item.name">{{item.name}}</li>
</ul>
import { Directive, SimpleChanges, Input, OnChanges, ElementRef, Renderer} from '@angular/core';

@Directive({
  selector: '[highlightData]'
})
export class HighlightDataDirective implements OnChanges {
  private _highlightData: string;

  @Input() set highlightData(value: string) {
    const prev = this._highlightData;
    this._highlightData = value;
    const cur = value;
  }

  constructor(private _elementRef: ElementRef, private _render: Renderer) {

  }

  ngOnChanges(changes: SimpleChanges) {
    if (changes['highlightData'] && !changes['highlightData'].isFirstChange()) {
      const prev: string = changes['highlightData'].previousValue;
      const cur: string = changes['highlightData'].currentValue;

      if (cur !== prev) {
        this._render.setElementClass(this._elementRef.nativeElement, 'animate', true);

        setTimeout(() => {
          this._render.setElementClass(this._elementRef.nativeElement, 'animate', false);
        }, 3000);
      }
    }
  }

}

谢谢。

用法错误。您应该将指令用作占位符
{{item.name}
。并且不要分配任何值,如果分配的值必须是
@Input
属性,则需要将指令添加到测试台declarations@peeskillet我将该指令添加到测试床声明中,但问题仍然存在。我在appComponent测试和使用该指令的所有组件中都遇到了此错误。我添加了将指令绑定到测试床声明中-where?查看当我使用指令上的[]绑定值时出现的问题,如
[highlightData]=“item.name”