getBbox не является функцией в AfterViewInit - PullRequest
0 голосов
/ 17 апреля 2020

В настоящее время я сталкиваюсь с проблемой в одном из моих Angular тестов по умолчанию для компонента, который только визуализирует комп. , не в исполнении браузера ... Я не понимаю, почему ....

Вот шаблон подсказка. html

<svg:g #rootElement [attr.transform]='translate'>
  <text lengthAdjust="spacingAndGlyphs" preserveAspectRatio=" xMidYMid slice" data-name="Hint">
    <tspan>
      {{dimension1}} {{spliter}} {{dimension2}}
    </tspan>
  </text>
</svg:g>

Файл TS компонента:

@Component({
  selector: '[node-hint]',
  templateUrl: './hint.component.html',
  styleUrls: ['./hint.component.css']
})
export class HintComponent implements OnInit, OnChanges, AfterViewInit {
  @ViewChild('rootElement') rootElement: ElementRef;
  constructor() {}

  ngOnInit() {}

  ngAfterViewInit() {
    var element = this.rootElement.nativeElement as SVGGraphicsElement;
    this.componentWidth = element.getBBox().width;
    this.callSomeMethod();
  }
  ngOnChanges() {
    this.callSomeMethod();
  }

  callSomeMethod(){}
}

А вот тест по умолчанию, который не прошел:

describe('HintComponent', () => {
  let component: HintComponent;
  let fixture: ComponentFixture<HintComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [HintComponent]
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(HintComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  afterEach(() => {});

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

В других методах жизненного цикла, таких как ngAfterViewChecked, ошибки нет, но мне нужна ширина компонента до инициализации содержимого !

Как я могу исправить эту ошибку? Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...